当我关闭一个bootstrap模式时,它不会发送应该执行的操作(在应用程序js中:)
application.hbs:
<li><a {{action "showSignInModal"}}>Sign In</a></li>
{{outlet}}
{{outlet 'modal'}}
自举-modal.js:
this.$('.modal').modal().on('hidden.bs.modal', function() {
alert("Closed");
this.sendAction('removeModal');
}.bind(this));
路由/ application.js中:
export default Ember.Route.extend({
actions: {
showSignInModal: function() {
this.render('components.signin-modal', {
into: 'application',
outlet: 'modal'
});
},
removeModal: function(){
alert("Working")
}
//...
}
})
登入-modal.hbs:
{{#bootstrap-modal title="Sign In" ok='signin' okText="Signin"}}
<p>
Please sign in. Thanks!
</p>
{{/bootstrap-modal}}
“关闭”警报显示,但“工作”警报不显示。 (登录模式是一个组件,没有定义任何动作,只是一个bootstrap-modal)
答案 0 :(得分:1)
行动不会像事件冒泡一样传播
将你的bootstrap模态包装到一个组件中,并从signin-modal中为它调用removeModal动作。
答案 1 :(得分:1)
您没有正确传递您的操作名称。
您需要注意,sendAction
方法如果无法找到操作名称,则会无声地失败。
确保您的模板中包含模态组件,您传递一个包含您要调用的操作名称的属性:
{{#bootstrap-modal title="Sign In" ok='signin' okText="Signin" removeModal="removeModal"}}
的更多信息