淘汰AMD& Postal.js

时间:2016-04-12 16:25:34

标签: javascript knockout.js amd knockout-components

我正在使用knockout组件和postal.js来进行组件之间的通信。

我已经注册了两个组件,A和B.当页面加载时,我希望A向B发送消息。我有这个:

define(['postal',''text!./templateA.html''], function (postal, html) {
    function ComponentA() {
        postal.publish({
            channel: "channel1",
            topic: "topic1",
            data: "Hello!"
        });
    }    
    return { viewModel: ComponentA, template: html };
}

...

define(['postal',''text!./templateB.html''], function (postal, html) {
    function ComponentB() {
        postal.subscribe({
            channel: "channel1",
            topic: "topic1",
            callback: doSomething
        });
    }
    return { viewModel: ComponentB, template: html };
}

问题在于,有时组件A在加载组件B之前发送消息,因此准备好接收消息。因此消息丢失,组件B中的操作不会执行。

修改

控制组件加载顺序的最佳方法是什么?

0 个答案:

没有答案