如何在ember组件中简单地包装bootstrap 2模态对话框?

时间:2013-12-09 08:51:30

标签: ember.js twitter-bootstrap-2

使用包含ember的对话框的官方手册使用了一个组件: http://emberjs.com/guides/cookbook/user_interface_and_interaction/using_modal_dialogs/

我想做的是改用twitter bootstrap 2对话框。

除了closeModal动作外,它确实有效。

我需要在bootstrap事件中注册回调"隐藏"这称为关闭动作,但我的尝试没有成功。

App.ModalDialogComponent = Ember.Component.extend({
    didInsertElement: function () {
        this.$('.modal').modal('show');
        this.$('.modal').on("hidden", function () {
            // how to trigger the close action from here ?
        });
    },
    actions: {
        close: function () {
            return this.sendAction();
        }
    }
});

这是一个完整的jsFiddle: http://jsfiddle.net/NQKvy/417/

2 个答案:

答案 0 :(得分:2)

根本不需要采取紧密行动。

这是一个有效的jsFiddle,我只保留必要的部分并将willDestroyElement添加到组件中: http://jsfiddle.net/NQKvy/421/

App.ModalDialogComponent = Ember.Component.extend({
    didInsertElement: function () {
        var self = this;
        this.$('.modal').modal('show');
        this.$('.modal').on("hidden", function () {
            self.sendAction();
        });
    }
});

答案 1 :(得分:1)

执行以下操作

App.ModalDialogComponent = Ember.Component.extend({
    didInsertElement: function () {
        self=this
        this.$('.modal').modal('show');
        this.$('.modal').on("hidden", function () {
            self.send('close')
        });
    },
    actions: {
        close: function () {
            return this.sendAction();
        }
    }
});