我正在为一个新网站尝试一个 javscript 框架,而我今天开始使用 knockoutjs。现在我被卡住了,因为数据没有被渲染。希望任何人都可以指出我正确的方向。我正在使用knockoutjs 2.2.1 和knockout mapping 2.4.0。
我的视图模型如下所示:
var UserModel = function () {
var self = this;
self.user = ko.observable();
// Load user.
self.load = function() {
self.loadUser();
};
self.loadUser = function() {
// Load the main user object
$.getJSON('/api/v1/users/17368',
function(data) {
var loadedUser = {};
console.dir(data);
ko.mapping.fromJS(data, {}, loadedUser);
self.user(loadedUser);
}
);
};
}
$(document).ready(function () {
var userModel = new UserModel();
ko.applyBindings(userModel);
userModel.load();
})
我可以看到数据是在 ajax 请求中加载的。更新:到目前为止,我尝试了不同的映射但没有成功:
ko.mapping.fromJS(data, {}, loadedUser);
ko.mapping.fromJS(data, loadedUser);
在上面的 loadUser 中,输出到控制台的数据如下所示:
Array[1]
0: Object
id: "17368"
email: "john@domain.net"
firstname: "John"
lastname: "Morris"
phone1: "000-1234567"
但是,此数据绑定片段中没有呈现任何内容。它因缺少姓氏或名字而窒息:
<table>
<thead>
<tr>
<th>lastname</th>
<th>firstname</th>
</tr>
</thead>
<tbody data-bind="foreach: user">
<tr>
<td><span data-bind="text: lastname"></span></td>
<td><span data-bind="text: firstname"></span></td>
</tr>
</tbody>
</table>