ember.js在视图或控制器中挣扎于transitionTo

Aar*_*oir 1 ember.js

从控制器或视图调用路由的正确方法是什么.例如,我有一个包含许多行的表.每一行View都有一个应该调用路由器的click方法.它不起作用我无法从控制器或视图导航应用程序.

这是一个例子:http://jsfiddle.net/arenoir/Cs938/

App.TableView = Ember.CollectionView.extend({
  tagName: 'table',
  contentBinding: 'controller.rows',
  itemViewClass: Ember.View.extend({
    tagName: 'tr',
    template: Ember.Handlebars.compile("<td>{{view.content.name}}"),
    click: function(){
      var router, tab;
      router = this.get('controller.target.router');
      tab = this.get('content.id');
      router.goTab(tab);
    }
  })
});
Run Code Online (Sandbox Code Playgroud)

以下帖子很有帮助.EmberJS:如何从控制器的动作转换到路由器.

mav*_*ein 6

这是您视图中转换逻辑的当前实现:

      click: function(){
          var router, tab;
          router = this.get('controller.target.router');
          tab = this.get('content.id');
          router.goTab(tab);
      }
Run Code Online (Sandbox Code Playgroud)

将其更改为此实现:

  click: function(){
      var router, tab;
      router = this.get('controller.target.router');
      tab = this.get('content.id');
      router.transitionTo(tab);
  }
Run Code Online (Sandbox Code Playgroud)

这解决了小提琴.但是从你的例子中不清楚,你为什么要在你的视图中触发过渡.状态管理应始终在路由器中进行.另一个尴尬的事情是你从ApplicationController获取行.为什么不使用ArrayController.所以从我的观点来看,似乎有些事情在错误的地方.