10

我想删除/清除其绑定的字段。

self.Selected = ko.observable();

"Selected": {
    "ID": 5,
    "Name": "22",
    "Active": true,
    "Temp": "2013-01-28T18:14:48.340Z"
  }

self.Selected.remove() ---> 错误:没有“删除”方法

self.Selected.removeAll(); --> 无法调用未定义的方法“removeAll”

self.Selected.cleanNode()--->错误:没有方法'cleanNode'

http://jsfiddle.net/yvTFN/24/ :所以你可以看到一个工作示例

编辑名称后,self.update = 函数将起作用,然后应清除属性 Selected,否则,如果再次单击更新(无值),该值将更新为空字符串。

4

2 回答 2

19

只需将值设置Selectednull

self.Selected(null);

编辑:您的 jsfiddle 使用ko.removeNode的不是您想要的。

有关工作版本,请参阅:http: //jsfiddle.net/yvTFN/26/

于 2013-01-28T19:51:52.860 回答
1
self.Selected.clearBindings = function __clearSelection__() {
    self.Selected = new ko.observable(self.Selected());
    self.Selected.clearBindings = __clearSelection__;
}

这种方法可能会满足您的需求,具体取决于您真正需要什么......有一些警告

  • 我不知道 KnockoutJS 的内部结构
  • 在某些浏览器中可能会有内存泄漏(IE<9)
  • 如果这是一个长时间运行的页面,并且多次调用此方法,您可能会得到意想不到的结果。
于 2013-01-28T18:59:45.607 回答