Ember - 在使用controllerName定义自定义控制器时,无法从控制器获取路由

时间:2014-11-28 00:33:59

标签: ember.js ember-cli

我正在尝试使用以下方法绑定路由的自定义控制器:

# app/routes/products/category.coffee

`import Ember from 'ember'`

route = Ember.Route.extend

  controllerName: 'categories/selector'

`export default route`

这样可行,但是当我尝试将事件从该控制器冒泡到路径时,它会进入递归循环。

我发现这是因为自定义控制器无法到达路由,因为'target'是控制器:

# app/controllers/categories/selector.coffee

`import Ember from 'ember'`

controller = Ember.ArrayController.extend

  actions:
    back: ->
      console.log "controller back action handle"
      console.log (@ == @get 'target') # => true
      return false # Returning true creates recursive loop

`export default controller`

模板:

# app/templates/products/category.hbs

{{render 'categories/selector'}}

这是正常行为吗?我如何从这个自定义控制器到达路线?

1 个答案:

答案 0 :(得分:0)

问题出在模板中,您应该使用:

# app/templates/products/category.hbs

{{partial 'categories/selector'}}

render创建自己的上下文/控制器,如@givanse所述。