我有一个简单的淘汰视图模型问题,它驱使我绕圈... siteId属性第一次绑定,但不点击更新:
有人看到这有什么问题吗?
function NewSiteAccessViewModel() {
var self = this;
self.siteId = ko.observable();
}
$(document).ready(function () {
var newSiteAccessViewModel = new NewSiteAccessViewModel();
newSiteAccessViewModel.siteId = 'none yet';
ko.applyBindings(newSiteAccessViewModel);
$(".testClick").click(function() {
newSiteAccessViewModel.siteId = "a new one";
alert(newSiteAccessViewModel.siteId);
});
});
HTML:
<h3 data-bind="text:siteId" ></h3>
因此我得到的结果将值更改为“none yet”,但随后不会在click上更新。警报显示新值......
答案 0 :(得分:2)
通过调用observable函数设置observable的值。所以你写的地方:
newSiteAccessViewModel.siteId = 'none yet';
你想要
newSiteAccessViewModel.siteId('none yet');
,类似于点击处理程序。
答案 1 :(得分:2)
对于Knockout的视图模型绑定要更新,您必须做两件事:
ko.observable()
所以在这种情况下:
siteId
创建为this.siteId = ko.observable();
siteId
必须初始化为newSiteAccessViewModel.siteId('none yet');
siteId
必须更新为newSiteAccessViewModel.siteId('a new one');