我希望有人可以看看bwlow代码,告诉我为什么它不起作用以及如何解决它。
我已经在我的项目中使用了ko.mapping插件多年,老实说从来没有真正理解它是如何工作的。几乎看起来像魔术。它做的一些页面(ajax数据返回)和其他类似的页面失败了。
var aaa = ko.mapping.fromJS({});
var ttt = {
"id": 6461,
"displayName": "Test Test",
"emailAddress": "TEST@TEST.com"
};
console.log(ttt);
ko.mapping.fromJS(ttt, {}, aaa);
console.log(aaa);
如果你看到tt的输出,你会得到你期望的 aaa的输出为null ??
这怎么可能?我认为映射是" MAPPING" JSON到ko.observables?
编辑: 在找到工作小提琴后,在一个小型实验室确认#34;这工作,它必须与在DurandalJS页面内有关。也许DurandalJS绑定到虚拟机的方式?
更新: 好的,所以上面的示例没有提供足够的上下文。对于那个很抱歉。让我们尝试以下代码
define(["durandal/app"],
function (app,) {
return function () {
var self = this;
self.aaa = ko.mapping.fromJS({});
self.myButtonOnWebPageClick = function() {
var ttt = {
"id": 6461,
"displayName": "Test Test",
"emailAddress": "TEST@TEST.com"
};
console.log(ttt);
ko.mapping.fromJS(ttt, {}, self.aaa);
console.log(ko.toJS(self.aaa));
}
}
});
上面的一些更新代码可以重现这个问题。