从Knockout中的元素获取observable

时间:2015-10-14 15:54:38

标签: knockout.js

我编写了以下代码,以便从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;

1 个答案:

答案 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调用会执行您要查找的内容