Knockout.js 敲除映射不';不包含我的对象
我正在尝试向使用淘汰映射填充的子视图模型添加一个computed。当我闯入时,我看到javascript数组中正确填充了角色数组,但在我的视图模型中,可观察数组的长度始终为0 这里有一个JSFIDLE显示了它。对于我所缺少的任何帮助,我们将不胜感激 这是子视图模型Knockout.js 敲除映射不';不包含我的对象,knockout.js,knockout-mapping-plugin,Knockout.js,Knockout Mapping Plugin,我正在尝试向使用淘汰映射填充的子视图模型添加一个computed。当我闯入时,我看到javascript数组中正确填充了角色数组,但在我的视图模型中,可观察数组的长度始终为0 这里有一个JSFIDLE显示了它。对于我所缺少的任何帮助,我们将不胜感激 这是子视图模型 var userModel = function(data) { data.createDate = new Date(data.createDate); ko.mapping.fromJS(data, {}, t
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
谢谢映射运行后,它会从您的JS中创建可观察对象—不仅是根对象,还有其中的所有属性。可观察对象是一个函数,因此您需要使用()形式访问名称: 这里是一个更新的小提琴:
ko.utils.arrayForEach(this.role(), function(role) {
if(role.name() == "Admin") {
admin = true;
}
});