更新 我意识到这不是“淘汰赛方式”,但是。
我想直接更新绑定元素的数据。
要获取元素的数据,我会使用
var data = ko.dataFor(this);
我想做点什么
ko.setData(element, key, value)
设置元素内部数据,而不触发任何绑定。
我目前正在做以下事情。
var data = {new_data:"yes please"};
ko.cleanNode(element);
ko.applyBindings(data, element);
我意识到这不是最好的做法,但无论如何我想找到一种干净易懂的方法。
查看来源后。是否有可能获得数据存储区的setter?
set:function(node,key,value) https://github.com/knockout/knockout/blob/master/src/utils.domData.js 第24行;
答案 0 :(得分:0)
ko.contextFor(element).$data
与ko.dataFor(element)
几乎相同。
所以你可以做ko.dataFor(element).relevantProperty('newValue')。
答案 1 :(得分:-1)
正如许多评论所述 - 不推荐这种方法。
我用痒痒了。
ko.contextFor(element);
让我可以访问以下内容。
$data: Object
$index: d()
$parent: Object
$parentContext: a.N
$parents: Array[1]
$rawData: Object
$root: Object
ko: Object
然后我更改了$ data对象中的相关属性。