我正在尝试将一个元素绑定到段落标记。它无法正常工作,并且在浏览器中没有出现任何错误。我正在使用Visual Studio进行开发。 我创建了一个显示问题的小提琴,并且我得到了我的绑定未定义的错误。
function checking(obj)
{
var self = this;
self.check = ko.observable(obj.count);
alert(self.check());
};
function MyVM()
{
var self = this;
self.MyArr = ko.observableArray();
var myObj = {count: 4};
self.function1 = function(){
self.MyArr.push(new checking(myObj));
};
self.function1();
}
ko.applyBindings(new MyVM(), document.getElementById('myId'));
我的HTML:
<div id = "myId">
<p data-bind="text: check"></p>
</div>
我知道如果我在MyVM()中定义检查字段然后它会工作,但我想使用cheking(obj)中的check字段。什么是实现这一目标的正确方法。
答案 0 :(得分:1)
尝试构建与viewModel类似的视图
查看:强>
<div data-bind="foreach:MyArr">
<p data-bind="text: check"></p>
</div>
<强>视图模型:强>
function checking(obj)
{
var self = this;
self.check = ko.observable(obj.count);
};
function MyVM()
{
var self = this;
self.MyArr = ko.observableArray();
var myObj = {count: 4};
self.function1 = function(){
self.MyArr.push(new checking(myObj)); //your `check` is present inside observableArray so you need to get hold of observableArray to access its inside content
};
self.function1();
}
ko.applyBindings(new MyVM());
工作小提取 here
如果您不想在视图中使用foreach
,您可以直接通过索引访问
喜欢 this