【问题标题】:Knockout Mapping ObservableArray doesn't contain my objects淘汰赛映射 ObservableArray 不包含我的对象
【发布时间】:2013-02-06 00:20:51
【问题描述】:

我正在尝试将计算结果添加到使用 Knockout 映射填充的子视图模型中。当我闯入时,我看到角色数组正确填充在 javascript 数组中,但在我的视图模型中,可观察数组的长度始终为 0。

这是一个显示它的 jsfiddle。对我所缺少的任何帮助将不胜感激。

http://jsfiddle.net/spbrogan/aREpY/

这是子视图模型

var userModel = function(data) {
    data.createDate = new Date(data.createDate);

    ko.mapping.fromJS(data, {}, this);


    this.isAdmin = ko.computed(function() {
        var admin = false;
        ko.utils.arrayForEach(this.role(), function(role) {
            if(role.name == "Admin") {
                admin = true;
             }
         });
         return admin;
    }, this);
} //close userModel

谢谢

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:

    映射运行后,它会从您的 JS 中创建可观察对象 - 不仅是根对象,还包括其中的所有属性。 observable 是一个函数,所以你需要使用 () 形式访问 name:

    ko.utils.arrayForEach(this.role(), function(role) {
        if(role.name() == "Admin") {
             admin = true;
        }
    });
    

    这是一个更新的小提琴:http://jsfiddle.net/aREpY/41/

    【讨论】:

      猜你喜欢
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      相关资源
      最近更新 更多