我有像这样的一个用户对象:淘汰赛映射响应对象
var userModel = {
Id: ko.observable(),
Email: ko.observable().extend({ email: true, required: true, maxLength: 200 }),
FirstName: ko.observable().extend({ required: true, minLength: 2, maxLength: 200 }),
LastName: ko.observable().extend({ required:true, minLength: 2, maxLength: 200 }),
DefaultLanguage: ko.observable(),
Phone: ko.observable().extend({phoneUS:true}),
AvatarUrl: ko.observable(),
Claims: ko.observableArray()
};
我加载的响应,并希望到对象的响应绑定。响应与模型的格式完全相同:
self.user = userModel;
self.loadData = function (params) {
$.get('/api/user/' + params.id).then(function (data) {
console.log('GET User', data);
self.user.Id(data.Id);
self.user.Email(data.Email);
self.user.FirstName(data.FirstName);
self.user.LastName(data.LastName);
self.user.Phone(data.Phone);
self.user.DefaultLanguage(data.DefaultLanguage);
self.user.AvatarUrl(data.AvatarUrl);
self.user.Claims(data.Claims);
});
};
虽然上面的工作很棒,但它真的很长。有没有更简单的方法来绑定对象?
你可以用 'ko.mapping.fromJS()'(http://knockoutjs.com/documentation/plugins-mapping.html) –
尝试,它并没有self.user工作是不是功能。 – allencoded
这不起作用? ko.mapping.fromJS(data,{},self.user); –