2015-12-21 49 views
0

我有一個用ASP.NET編寫的大項目,我需要修改。它採用knockout.js綁定值:訪問所有綁定值

$(document).ready(function() { 
    var model = new MyViewModel(); 
    ko.applyBindings(model); 
}); 

之後,bindig完成:

<span data-bind="text: myText"></span> 

我現在想訪問被束縛,所有的值。不幸的是,我對這些框架並不是很有經驗。

隨着

console.log(model); 

我得到一個巨大的輸出(摘錄):

MyViewModel{settings: [...]} 
TypeSeriesSubscription: c() 
barClick: (e, bar) 
cancelSetting:() 
chartClick: (value) 
chartUser: c() 
charts: c() 
[...] 

隨着

model.myText 

我得到的只是undifined

如何訪問myText以便將其文本放在控制檯中?

+0

如果'text'是一個可觀察的使用'model.text()',如果它的var然後使用'model.text'。還要將'var model = new MyViewModel();''document'ready'外部在控制檯中進行測試。 – Dandy

+0

@Dandy:使用'model.myText'我得到'undefined'和'model.myText()'我得到'model.myText不是一個函數'。 – user1170330

+0

顯示** MyViewModel **的代碼 –

回答

0

您正在確定範圍model只存在於ready函數的內部。試試這個:

var model = new MyViewModel(); 
$(document).ready(function() { 
    ko.applyBindings(model); 
}); 

那麼你應該能夠:

console.log(model.myText()); 

由於KO依賴於觀察的模式,你需要使用()任何財產後,看到它的當前值。