这可能是一个非常基本的问题,但在下面的视图模型中,我从ajax调用中填充self.userData。我想在UI中显示这些信息,我想'with'绑定是要走的路,但是由于self.userData是空的,直到调用ajax函数,我从绑定中得到一个错误具有约束力的knockout.js
HTML
<div data-bind="with: userData">
<div data-bind="text: userId"></div>
...
</div>
模型
var viewModel = function() {
var self = this;
self.userData = {};
self.login = function(data) {
var postData = { ..trimmed out.. };
$.ajax({
type: "POST",
url: "myService",
data: postData
}).done(function (data, status) {
self.userData = ko.mapping.fromJS(data, userData);
console.log(self.userData);
}).fail(function (data, status) {
alert('Could Not Login');
});
}
};
ko.applyBindings(new viewModel());
如果是这样的话,虽然(它可能会根据返回的数据),他也将需要交换*有*有约束力* foreach *绑定,基于html代码片段中* userData *的绑定。 – Grim 2013-04-09 07:47:47
你就在那里@Grim。好点。 – 2013-04-09 07:49:48