Knockout JS不会更新映射对象
我是Knockout JS的新手。我还没有找到谷歌在与淘汰赛js地图上的帮助。我有一个来自服务器的JSON。我使用knockout js映射库来映射JSON。与该属性关联的数据绑定dom不会更新。 我已经包含了一个即时通讯使用的小提琴。 注意被映射到observable的json对象。点击加载按钮时,json被映射,属性“test”的值应该显示在标签中。任何想法为什么它不显示在标签中?Knockout JS不会更新映射对象
在JS小提琴中有一个工作示例。
这是被映射
var json = {
"id": 9,
"test": "John Doe",
"firstName": "John",
"lastName": "Doe",
"referenceNumber": "BUY-08",
"position": "Buyer",
"type": "Buyer",
"telephone": "028 82 240780",
"email": "[email protected]",
"departmentId": 3,
"departmentName": "DEPT B",
"country": "United Kingdom"
};
我的脚本示例
var masterModel = function()
{
var self = this;
self.members = ko.observableArray([]);
self.websites = ko.observableArray([]);
self.seoData = ko.observable();
self.test = ko.observable();
self.loadWebsite = function(website)
{
var json = {
"id": 9,
"test": "John Doe",
"firstName": "John",
"lastName": "Doe",
"referenceNumber": "BUY-08",
"position": "Buyer",
"type": "Buyer",
"telephone": "028 82 240780",
"email": "[email protected]",
"departmentId": 3,
"departmentName": "DEPT B",
"country": "United Kingdom"
};
self.test(ko.mapping.fromJS(json))
console.log(self.test);
}
}
var master = new masterModel();
ko.applyBindings(master);
问题是,当你点击loadWebsite的$ data.test.test的JSON没有更新!
我更新,它似乎有一些细微的变化工作:
关键的一点是我提领“测试”观察到:
<h1 data-bind="text: test().test">?</h1>
而且我也初始化的初始值:
self.test = ko.observable({ test: ko.observable('WTF') });
非常感谢你,我一直试图让这个3天! – user1566026 2013-04-25 01:38:10
np,顺便说一句,我发现映射插件不值得麻烦,除非你正在做一些非常奇特的东西。 – 7zark7 2013-04-25 01:40:17
对不起没有发生什么事?你的例子代码还是其他的吗? – 7zark7 2013-04-25 01:05:20
小提琴。数据绑定没有被更新。 – user1566026 2013-04-25 01:07:34
更新时间/如何?什么扭转了更新?小提琴看起来正确 – 7zark7 2013-04-25 01:08:53