javascript - 如何从 Ember 中的路由访问 Controller ?

标签 javascript ember.js ember-router

有没有一种万无一失的方法可以从路由访问 Controller ?

<a href="#" class="btn" {{action "someAction" user}}>add</a>

App.ApplicationRoute = Ember.Route.extend
  events:
    someAction: (user) ->
      console.log 'give me name from currentUser controller'

someAction 非常通用,我认为 ApplicationRoute 是最适合它的地方。

最佳答案

我认为方法 controllerFor 应该在此事件中可用:

App.ApplicationRoute = Ember.Route.extend
  events:
    someAction: (user) ->
      console.log this.controllerFor("currentUser").get("name")

更新以回应评论中的问题:

这完全取决于您想要做什么。在这样一个基本方法上担心 DRY 没有多大意义,恕我直言。

在你的荣誉左案例中,我会这样做:

App.ApplicationRoute = Ember.Route.extend
  events:
    someAction: (user) ->
      this.controllerFor("currentUser").decrementKudos();
      // implement the decrementKudos in your controller

但我想存储这个 Controller 也应该可以工作,如果这对您来说代码太多:

App.ApplicationRoute = Ember.Route.extend
  currentUserCon : this.controllerFor("currentUser")
  events:
    someAction: (user) ->
      this.currentUserCon.decrementKudos();
      // implement the decrementKudos in your controller

关于javascript - 如何从 Ember 中的路由访问 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911704/

相关文章:

Ember.js pre4,怎么做之前的pre2 connectOutlet的东西

javascript - 如何使用子上下文可访问的自定义属性扩展模板绑定(bind)语法?

javascript - js.mapit 不工作

javascript - 使用输入类型 'file' 在浏览器存储中存储图像 - Reactjs

javascript - 在 Javascript 中用时间间隔检测第一人称写作

ember.js - 使用 ember-data 在 Ember.js RC1 中侧载 belongsTo 数据

javascript - EmberJS - 断言失败 : The value that #each loops over must be an Array. 你通过了(生成的应用程序 Controller )

ember.js - Ember-cli ember serve AssertionError (false == true)

ruby-on-rails - EmberJS 中的 I18n(路由和一般)

ember.js - 如何设置链接以动态分段路由