我正在尝试将绑定应用于特定的DOM元素,但我的代码或示例here
都没有成功这就是我现在所拥有的:
var Test = function(first, last){
this.first = ko.observable(first);
this.last = ko.observable(last);
}
ko.applyBindings(new Test("Hello", "World"), $("#Element").get());
我一直得到这个
Uncaught Error: ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node
我试过给它只有jQuery元素也无济于事。我可以通过视觉和控制台测试确认$(“#Element”)是DOM的一部分。
答案 0 :(得分:6)
没有任何参数$("#Element").get()
执行以下操作(doc):
检索由jQuery对象匹配的DOM 元素。
所以它返回匹配元素的数组,即使这个数组只包含一个元素。
所以你需要使用带索引的重载:
ko.applyBindings(new Test("Hello", "World"), $("#Element").get(0));
或索引返回的数组:
ko.applyBindings(new Test("Hello", "World"), $("#Element").get()[0]);
答案 1 :(得分:2)
jQuery的.get()函数,没有参数,返回集合。如果只想要DOM节点引用,则需要将索引0传递给它,如下所示:
ko.applyBindings(new Test("Hello", "World"), $("#Element").get(0));
答案 2 :(得分:0)
试试这个..
var Test = function(first, last){
this.first = ko.observable(first);
this.last = ko.observable(last);
}
ko.applyBindings(new Test("Hello", "World"), $("#Element").get(0));
确保ID为“Element”的DOM元素存在