2

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 プロパティをすばやく切り替えるという考えです。計算されたオブザーバブルはこの変更を検出し、いくつかの機能をトリガーします-フォルダーを追加します。これは合理的な解決策ですか?「うまくいく」解決策を見つけたくありません。この結果を適切に達成する方法を学びたいです。

4

1 に答える 1