KnockoutJS Mapping不起作用

时间:2017-12-08 15:17:14

标签: knockout.js knockout-mapping-plugin

我希望有人可以看看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));
          }

    }
    });

上面的一些更新代码可以重现这个问题。

0 个答案:

没有答案