我编写了以下代码,以便从HTML元素中获取可观察的Knockout视图模型,但我想知道在不知道observable名称的情况下是否有更好的方法可以做到这一点?
var dataBinding = $(element).data('bind');
var observableName = dataBinding.substr(dataBinding.indexOf('value:')+6);
observableName = observableName.substr(0, observableName.indexOf('(')).trim();
var observable = ko.dataFor(element)[observableName];
return observable;
答案 0 :(得分:1)
似乎是一种更直接的方法:
http://jsfiddle.net/rniemeyer/CajFz/(小提琴是由淘汰赛创作者创造的)
注:
var name1Data = ko.utils.unwrapObservable(ko.utils.domData.get(document.getElementById("name1"), "ko_data"));
ko.utils.domData.get
调用会执行您要查找的内容