2013-10-19 77 views
0

我寫了一個簡單的例子來了解ko.observableArray是如何工作的。如何使用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/

我所期待的 「Count是:3」 的輸出,而不是它的輸出是 「計數是:」

請讓我知道爲什麼計數沒有得到顯示。

謝謝。

+0

[Observable的設置值在Knockout中未更新](http://stackoverflow.com/questions/19391415/setting-value-of-observable-not-updating-in-knockout) –

回答

0

ko.observableArray應該是model對象的一部分。
例如

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

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

應用綁定

ko.applyBindings(viewModel); 

JSFiddle DEMO

你可以找到很好的knockout online-tutorial這裏

1

情侶問題S:

  • 你沒有包括淘汰賽在JS小提琴庫
  • 您沒有提供一個封裝你觀察到的陣列
  • 您在綁定

有一個錯字的VM對象小提琴:link

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

這是你撥弄的工作叉:

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

注意text binding語法如何包括結腸:在JavaScript

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

注意如何ko.applyBindings被使用。見淘汰賽文檔 激活淘汰賽: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); 

另外值得注意的是n你原來的小提琴,你沒有包括knockoutjs庫。

相關問題