現在、バックボーンとマリオネットで古いアプリを書き直しています。私のモジュール ファイル spls.module.insight.js では:
spls.module('Insight', {
startWithApp: false,
define: function(self, spls, Backbone, Marionette, $, _) {
self.start = function () {
console.log('Insight started!');
}
self.addInitializer(function() {
console.log('Insight instantiated!');
});
}
});
モジュールの start() を待機するときに使用する通常のメソッドであると考えたため、start() メソッドにフックしようとしています。(一度しか初期化されないので、イニシャライザを使用できません。しかし、他に何がありますか?) spls.module('Insight').start(); への 2 回目の呼び出しで。「Insight が開始されました!」という 2 つのメッセージを受け取ります。メッセージ。どうしてこれなの?
これを解決するより良い方法はありますか?
達成したいことに関する詳細情報: Marionette を使い始めたばかりなので、モジュールが何を行い、どのように相互作用するかについてまだ深く理解していません。私が達成したかったのは、基本的に、ルーターを介してページ (モジュール) を開くメインアプリ (作品) でした。現在、私は電話しています
Spls.module('Insight').start();
ルーターからですが、モジュール自体の設計方法がわかりません。初期化子は最初の .start() でのみ呼び出されるように見えるため、モジュールはその内容をいつ表示するかを知りません。そのようにイベントアグリゲーターを使用する必要がありますか?
// router
Spls.module('Insight').start();
Spls.vent.trigger('insight:show');
// module
Spls.vent.on('insight:show', function () { /* show index */ });
基本的に、モジュールの操作方法に関する詳細情報が必要ですが、これに関する適切なワークフローに関する適切な情報が見つかりませんでした。
再度、感謝します!