小编rba*_*bag的帖子

淘汰组件通信

我有一个我想要转换为的Web应用程序和使用ko组件的SPA.我想知道如何进行一种组件间通信.

例如,我想要一个"通知"组件,其中每个组件都可以发送通知.

我设法通过在主视图模型中共享一个可观察的数组来找到解决方案:

var VM = function() {
    var self = this;

    this._notifications = ko.observableArray([]);
   this.notifications = {
        addInfo: function(text){
            self._notifications.push(text);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

<comp1 params="{app: $data}"></comp1><br/>
<comp2 params="{app: $data}"></comp2><br/>
<notif params="{app: $data}"></notif>
Run Code Online (Sandbox Code Playgroud)

见这里:http: //jsfiddle.net/nveron/j4829y7p/

我对这个解决方案并不完全满意,我宁愿将通知数据保存在通知组件中.

你有什么想法来解决这个问题吗?

knockout.js single-page-application knockout-components

9
推荐指数
1
解决办法
2956
查看次数