[英]Knockout.js pulling element from observableArray returns undefined
[英]Knockout.js returns undefined
我试图从ajax获取一些用户数据,并在html中返回它以更新UI。 由于某种原因,我无法使其正常工作。
我的淘汰赛如下:
function User(data) {
this.name = ko.observable(data.name);
this.email = ko.observable(data.email);
}
function UserViewModel() {
// Data
var self = this;
self.users = ko.observableArray([]);
self.newTaskText = ko.observable();
self.incompleteTasks = ko.computed(function() {
return ko.utils.arrayFilter(self.users(), function(user) { return !user.email() });
});
// Load initial state from server, convert it to Task instances, then populate self.tasks
$.getJSON("/admin/ajax-get-add-user-json.do", function(allData) {
var mappedTasks = $.map(allData, function(item) { return new User(item) });
self.users(mappedTasks);
console.log(allData);
console.log(allData.name);
});
}
ko.applyBindings(new UserViewModel());
然后我在html中像这样返回它:
<ul data-bind="foreach: users, visible: users().length > 0">
<li data-bind="text: email"></li>
<li data-bind="text: name"></li>
</ul>
但是,当我使用console.log作为.name时,它将在控制台中返回undefined。 而且它也不会在HTML中打印任何内容。
我在这里做错了什么?
您需要读取所有数据的响应属性:
function(allData) {
var data = allData.response;
var mappedTasks = $.map(data, function(item) { return new User(item) });
self.users(mappedTasks);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.