pub/sub 同期に関する RN のブログ記事をフォローしています。
http://www.knockmeout.net/2012/05/using-ko-native-pubsub.html
私のアプリケーションには、さまざまな内部ビューモデルを持つ「シェル」ビューモデルがあり、そのうちの 1 つが「フォルダー」です。フォルダー ビューモデル内で、フォルダーを一覧表示します。
シェルのメニュー バーから、別のフォルダーを追加できるようにする必要があります。これは私が今それを達成している方法です:
shell.js の場合:
this.clickedAddFolder = ko.observable(false).publishOn("CLICKED_ADD_FOLDER");
this.addFolder = function () { clickedAddFolder(true); clickedAddFolder(false); };
次に、folder.js で:
var clickedAddFolder = ko.observable().subscribeTo("CLICKED_ADD_FOLDER");
innerModel.addFolder = ko.computed(function() {
if (clickedAddFolder()) {
var folder = new folderViewModel(addFolderDto);
innerModel.folders.push(folder);
refreshIsotope();
}
}).bind(this);
shell.js は、folder.js がサブスクライブしている clicked_add_folder プロパティをすばやく切り替えるという考えです。計算されたオブザーバブルはこの変更を検出し、いくつかの機能をトリガーします-フォルダーを追加します。これは合理的な解決策ですか?「うまくいく」解決策を見つけたくありません。この結果を適切に達成する方法を学びたいです。