【问题标题】:Ember 2.0 : why my action is not triggered in routeEmber 2.0:为什么我的动作没有在路由中触发
【发布时间】:2016-07-11 02:41:03
【问题描述】:

我正在尝试将测试应用从 Ember 1.0 迁移到 Ember 2.0

我写了一个索引模板,带有一个动作事件'alert'

<table id="t01">
      <tr>
        <th>Company Name</th>
      </tr>
      {{#each model as |item|}}
        <tr>
          <td {{action "alert" "alert form company name" }}>{{item.name}}</td>
        </tr>
      {{/each}}
</table>

我写了一个 application.js 控制器来初始化属性

import Ember from 'ember';
export default Ember.Controller.extend({
  className:"hide",
  message: ""
});

我还有一个 index.js 控制器来在索引控制器级别执行一些逻辑

import Ember from 'ember';
export default Ember.Controller.extend({
  actions:{
    alert: function(){
      console.log("do some controller level processing");
      return true;
    } 
  }
});

最后我定义了一个带有“警报”事件处理程序的 routes/application.js,用于更新应用程序控制器属性(类名、消息)

import Ember from 'ember';
export default Ember.Route.extend({
  actions:{
    alert: function(message){
      var applicationController = this.controllerFor("application"); 
      applicationController.set("className","alert"); 
      applicationController.set("message",message);
      Ember.run.later(function(){
        applicationController.set("className","hide");
      },2000);
    }
  }
});

还有一个路由/index.js 来提供模型数据

但它在 Ember.js 2.0(运行 2.4.2)中无法正常工作 并且控制台没有错误信息,我只得到索引控制器控制台日志输出

似乎触发了 routes/application.js 中的警报操作,正确接收消息,但未设置属性... 我可以获得应用程序控制器吗?与

var applicationController = this.controllerFor("application");

感谢反馈

【问题讨论】:

    标签: ember.js ember-cli


    【解决方案1】:

    解决了

    应用程序模板没有正确的类(div 中的“className”属性......因此警报操作得到了正确处理,但模板中没有发生任何变化......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      相关资源
      最近更新 更多