我有一个要转换为的 Web 应用程序和使用 ko 组件的 SPA。我想知道如何进行一种组件间的通信。
例如,我想要一个“通知”组件,其中每个组件都可以发送通知。
我设法通过在主视图模型中共享一个可观察数组来找到解决方案:
var VM = function() {
var self = this;
this._notifications = ko.observableArray([]);
this.notifications = {
addInfo: function(text){
self._notifications.push(text);
}
}
}
和
<comp1 params="{app: $data}"></comp1><br/>
<comp2 params="{app: $data}"></comp2><br/>
<notif params="{app: $data}"></notif>
见这里:http: //jsfiddle.net/nveron/j4829y7p/
我对这个解决方案并不完全满意,我宁愿将通知数据保留在通知组件中。
你有什么想法来解决这个问题吗?