我在我的body标签中使用了两个viewModel来控制2个独立的div,我试图将值传递给第二个视图模型的observable函数,但它似乎没有用。甚至可以让两个视图模型相互作用?
这是代码:
function friendsOnlineModel(data,mapping) {
//saveUserDetailsOffline(data.user);
onlineFriends = ko.mapping.fromJS(data,mapping);
onlineFriends.startChat = function() {
new chatModel().username("olu");
};
onlineFriends.sending_message = ko.observable("");
return onlineFriends;
}
function chatModel() {
var chat = this;
chat.username = ko.observable('kunle');
return chat;
}
答案 0 :(得分:0)
不要将淘汰赛与黑魔法混为一谈。 当然它们可以是intercat,一个observable只不过是一个简单的javascript函数,所以假设你持有它的引用,你可以把它传递给你喜欢的任何地方。为此,您应该初始化viewModel并保留对它们的引用。 即: 如果你想让你的“friendsOnlineModel”与你的chatModel进行通信,你应该在他们之间定义依赖关系,谁需要谁,谁应该作为参数传递给谁。
所以从本质上讲你可以做这样的事情:
function friendsOnlineModel(data,mapping,chatModel) {
//saveUserDetailsOffline(data.user);
onlineFriends = ko.mapping.fromJS(data,mapping);
onlineFriends.startChat = function(userName) {
chatModel.username(userName);
};
onlineFriends.sending_message = ko.observable("");
return onlineFriends;
}
function chatModel() {
var chat = this;
chat.username = ko.observable('kunle');
return chat;
}
var chatModel = new chatModel();
var friendsOnModel = new friendsOnlineModel(data,mapping,chatModel);
请告诉我这是否有帮助!