0

我希望能够控制来自 Knockout 的 n jqueryUI 对话

我在这里看到了如何从淘汰赛中控制对话: 最新淘汰赛和 jquery ui 对话框出错:在初始化之前无法调用

在那篇文章中,对话在更新处理程序中控制:

 update:ko.utils.unwrapObservable(allBindingsAccessor().dialogVisible);
              $(element).dialog(shouldBeOpen ? "open" : "close");

是否有任何共识,你将如何控制多个对话的状态与 observable 像这样:

  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);
    }

我可以用另一个绑定处理程序重复这个逻辑,但我更愿意只坚持一个。

4

1 回答 1

1

绑定处理打开/关闭特定于包含绑定的元素的对话框。因此,您可以在映射到不同布尔值的单独元素上放置绑定:

<div data-bind="dialog: {autoOpen: false, title: 'Dialog test' }, dialogVisible: isOpen">dialog</div>

<div data-bind="dialog: {autoOpen: false, title: 'Dialog test 2' }, dialogVisible: isOpen2">dialog 2</div>

这是一个示例:http: //jsfiddle.net/rniemeyer/RvH6L/

于 2013-03-05T14:36:31.067 回答