【发布时间】:2015-11-30 15:21:30
【问题描述】:
我正在使用 Knockout.js。我有这样的功能:
function deviceGroupItem(item) {
this.DeviceGroupName = item.DeviceGroupName;
this.groupDevicesVisible = ko.observable(false)
this.groupDevicesArray = ko.observableArray();
this.deviceGroupClick = function () {
if (this.groupDevicesVisible() == false) {
this.groupDevicesVisible(true)
$.ajax({
url: returnServer() + '/api/Mobile/getRoomDevices?accessToken=' + localStorage.getItem('Token'),
type: "GET",
dataType: "json",
success: function (data) {
this.groupDevicesArray()($.map(data, function (item) {
return new roomDeviceItem(item);
}))
},
error: function () {
}
})
} else {
this.groupDevicesVisible(false)
}
}
return this;
}
问题是,当我尝试绑定时:
this.groupDevicesArray = ko.observableArray();
使用:
this.groupDevicesArray()($.map(data, function (item) {
return new roomDeviceItem(item);
}))
我收到错误“this.groupDevicesArray 不是函数”。老实说,我不知道如何以正确的方式做到这一点。你知道我怎样才能做到这一点吗?
【问题讨论】:
-
试试这个:this.groupDevicesArray (ko.utils.arrayMap(data, function(item) { return new roomDeviceItem(item); }); 或 this.groupDevicesArray($.map(data, function (item) { return new roomDeviceItem(item); }))
-
谢谢你的回答,但还是一样。
标签: javascript knockout.js knockout-mapping-plugin