0

我编写了简单的示例来了解 ko.observableArray 的工作原理。

**HTML**:
Count is : <span data-bind="text anotherObservableArray().length"> </span>

JS:
var anotherObservableArray = ko.observableArray( [
{ name: "A", type: "A" },
{ name: "B", type: "B" },
{ name: "C", type: "C" }
]);

ko.applyBindings(anotherObservableArray);

这是我尝试实现的示例的链接

http://jsfiddle.net/Rama_Kishore/ZPDBv/

我期待“计数是:3”输出,而不是输出是“计数是:”

请让我知道为什么没有显示计数。

谢谢。

4

3 回答 3

2

这是你的小提琴的一个工作分支:

http://jsfiddle.net/myjkk/2/

请注意文本绑定语法如何包含冒号:

<span data-bind="text: anotherObservableArray().length"></span>

请注意 javascriptko.applyBindings中的使用方式。请参阅 Activating Knockout 的淘汰赛文档:http: //knockoutjs.com/documentation/observables.html

var vm = {
    anotherObservableArray: ko.observableArray([{
        name: "A",
        type: "A"
    }, {
        name: "B",
        type: "B"
    }, {
        name: "C",
        type: "C"
    }])
};

ko.applyBindings(vm);

另外值得注意的是,在您原来的小提琴中,您没有包含knockoutjs 库。

于 2013-10-19T16:43:48.490 回答
1

几个问题:

  • 您没有在 js fiddle 中将 Knockout 作为库包含在内
  • 您没有提供包装可观察数组的 vm 对象
  • 你在装订中有错字

小提琴:链接

var vm = {
    anotherObservableArray : ko.observableArray( [
       { name: "A", type: "A" },
       { name: "B", type: "B" },
       { name: "C", type: "C" }
    ])
}
 ko.applyBindings(vm);
于 2013-10-19T16:39:53.880 回答
0

ko.observableArray应该是model对象的一部分。
例如

var viewModel = new function()
{
   this.anotherObservableArray = ko.observableArray(...);
}  

或者

var viewModel = {
   anotherObservableArray : ko.observableArray(...);
}  

应用绑定

ko.applyBindings(viewModel);  

JSFiddle 演示

你可以在这里找到非常好的淘汰赛在线教程

于 2013-10-19T16:38:51.197 回答