【发布时间】:2014-04-13 22:05:06
【问题描述】:
我正在尝试将一些数据推送到 KO 可观察数组。我从我的 AJAX 调用中获取数据,并且在我的脚本执行时我没有收到任何错误。但是,如果我尝试访问 userNames,我会得到一个空数组。我在这里错过了什么?
UserHandler = (function () {
var userName = function (data) {
this.Name = data;
};
var userNames = ko.observableArray([]);
var getUserNames = function () {
userNames([]);
$.ajax({
url: "Users/All",
dataType: "json",
success: function (data) {
ko.utils.arrayPushAll(userNames, $.map(data, function (entry) {
return new userName(entry);
}));
}
});
};;
return {
UserNames: userNames,
GetUserNames: getUserNames,
};
});
console.log(UserHandler().UserNames());
--> []
【问题讨论】:
-
如果你只执行这部分代码会发生什么 - $.map(data, function (entry) { return new userName(entry);
-
我最终得到了一个
userName对象数组。我可以循环浏览它们并返回对象的属性。我可能在范围上做错了吗?
标签: javascript arrays knockout.js javascript-objects