Knockout から n 個の jqueryUI ダイアログを制御できるようにしたい
ここでノックアウトからダイアログを制御する方法を見てきました: 最新のノックアウトと jquery ui ダイアログのエラー: 初期化の前に呼び出すことはできません
その投稿では、ダイアログは更新ハンドラーで制御されます。
update:ko.utils.unwrapObservable(allBindingsAccessor().dialogVisible);
$(element).dialog(shouldBeOpen ? "open" : "close");
次のように、オブザーバブルを使用して複数のダイアログの状態を制御する方法についてコンセンサスはありますか:
isAddOpen: KnockoutObservableBool = ko.observable(false);
isEditOpen: KnockoutObservableBool = ko.observable(false);
openEditDialogue(editingItem) {
this.editingItem = editingItem;
this.isEditOpen(true);
}
closeEditDialogue(editingItem) {
this.editingItem = editingItem;
this.isEditOpen(true);
}
openAddDialogue() {
this.isAddOpen(true);
}
closeAddDialogue() {
this.isAddOpen(false);
}
別のバインディング ハンドラーを使用してロジックを繰り返すこともできますが、その 1 つだけに固執することをお勧めします。