javascript - 从 Ember 2.0 组件调用 Controller 操作

标签 javascript ember.js

现在 Ember 2.0 决定完全删除 Ember.View 我遇到了将操作从 View 传递到 Controller 的问题。

App.SomeView = Ember.Component.extend({
   didInsertElement : function(){
     var _this = this;
     window.addEventListener("message",
        function(event) {
            _this.get("controller").send("foobar", event.data);
        }, false);
  }
});

App.SomeController = Ember.Controller.extend({
   actions: {
      foobar: function(param) {
         console.log("Yey", param);
      }
   }
});

因为我现在需要使用 Ember.Component 而不是 Ember.View。然后当然 this.get("controller").send 方法不再起作用了。有什么解决方法吗?

最佳答案

您可以在组件中使用 sendAction() 并在模板中为其分配处理程序。

// some-component.js 
this.sendAction('actionName', params);

// template
{{some-component actionName="foobar"}}

// controller
actions: {
   foobar(params) {
     alert('action received');
   }
}

详情:http://guides.emberjs.com/v2.0.0/components/sending-actions-from-components-to-your-application/

关于javascript - 从 Ember 2.0 组件调用 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741129/

相关文章:

javascript - 设置 ember-view div 的 CSS 属性

Javascript:使用范围内的范围生成随机数

javascript - 使用 jQuery 在服务器端操作 Wordpress 数据库

javascript - Ember 助手等待 ajax 请求

javascript - 从组件刷新/重新加载 ember 路由

javascript - Ember.js Handlebars 绑定(bind)逻辑不

javascript - 使用函数简化我的 javascript

javascript - 如何在 JQuery/Javascript 中检测点击的 href URL

javascript - Polymer:访问父元素或其他元素的属性

ember.js - 以编程方式评估 Ember 模板