我正在使用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中的操作不会执行。
修改
控制组件加载顺序的最佳方法是什么?