2015-12-21 51 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依赖于观察的模式,你需要使用()任何财产后,看到它的当前值。