2015-10-06 49 views
-1

好標題被混淆,所以我會給你我的代碼來了解我的問題在淘汰賽教程如何從(init)JSON函數調用(ko.observableArray)?

他們使用的功能,而不是JSON我的意思是這樣的:

data = [ 
    { 
    id: 1, 
    name: 'somehing' 
    },{ 
    id: 2, 
    name: 'somehing else' 
    }, 
] 

這裏是我的問題

var ViewModel = function() { 
    var self = this; 
    self.dataList = ko.observableArray(data); 
    console.log(ViewModel.dataList); 
}; 

而在其他網站和在github上的教程和項目的大部分使用JSON

var ViewModel = { 
    dataList : ko.observableArray(data), 
    init: function() { 
     console.log(ViewModel.dataList); 
     } 
}; 

此行

 dataList : ko.observableArray(data), 

當我嘗試調用DataList控件它返回此

function d(){if(0<arguments.length)return d.Wa(c,arguments[0])&&(d.X(),c=arguments[0],d.W()),this;a.k.Ob(d);return c} 

,如果我試圖得到它的價值控制檯會告訴我,的DataList沒有定義

但如果我通過數據直接到dataList這樣的(這不再被observableArray),它會給我的全部物品價值在控制檯

 dataList : dataList, 

在控制檯

[Object, Object] 

的返回值我怎麼能叫的ko.observableArrayinit函數?

我想按照這樣的網絡教程,但我的問題是一樣的。

http://opensoul.org/2011/06/23/live-search-with-knockoutjs/

其實它不僅ko.observableArray陣列還我不能叫ko.observable對象

回答

3

當我嘗試調用它的DataList返回此

您的密碼不是致電ViewModel.dataList,它只是訪問它,它給你的功能(記住observables是函數)。至撥打吧,加()

console.log(ViewModel.dataList()); 
// Note ----------------------^^