第一个Web服务:(用户)
[{id:1,用户名:“ Jhon”}]
第二个Web服务:(消息)
[{id:34,消息:“这是一条消息1”,UserId:1},{id:35,消息:“这是一条消息2”,UserId:1}
如何在两个ko.obervableArrays上方进行映射,以便可以基于UserId在Message ViewModel中获取UserName(“ Jhon”)。
如您所知,UserId:1是User的外键。
我想给Message和UserName这样的用户。
data-bind =“文本:用户名”
data-bind =“文本:消息”
您可以使用create
映射插件的选项来包含用户数据,如下所示:http : //jsfiddle.net/H4QfX/
var userData = [{id:1, UserName:"Jhon"}],
messageData = [{id:34, Message:"This is a message 1", UserId:1}, {id:35, Message:"This is a message 2", UserId:1}];
var users = ko.mapping.fromJS(userData);
var viewModel = ko.mapping.fromJS(messageData, {
'UserId': {
create: function(options) {
return ko.utils.arrayFirst(users(), function(u) {
if (u.id() == options.data) {
return u;
}
});
}
}});
ko.applyBindings(viewModel);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句