繁体   English   中英

未从EmberJS中的组件发送操作

[英]Action not being sent from component in EmberJS

当我关闭引导程序模式时,它不会发送应有的操作(在应用程序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}}

显示“已关闭”警报,但不显示。 (登录模式是一个组件,未定义任何操作,而只是一个引导模式)

动作不会像事件起泡那样传播

将您的引导程序模式包装到组件中,并从signin-modal中给它执行removeModal操作以进行调用。

您没有正确传递动作名称。

您需要注意,如果sendAction方法找不到操作名称,它将以静默方式失败。

确保在包含模态组件的模板内部,传递一个具有要调用的动作名称的属性:

{{#bootstrap-modal title="Sign In" ok='signin' okText="Signin" removeModal="removeModal"}}

您可以阅读有关将动作传递给组件的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM