ember.js正在与视图或控制器中的transitionTo作斗争



从控制器或视图调用路由的正确方法是什么。例如,我有一张有很多行的桌子。每一行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);
}
})
});

下面的帖子很有帮助。EmberJS:如何从控制器转换到路由器';s的操作。

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

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

将其更改为此实现:

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

这把小提琴修好了。但从您的示例来看,不清楚您为什么要在视图中触发转换。状态管理应始终发生在路由器中。另一件尴尬的事情是,您从ApplicationController获取行。为什么不使用ArrayController。因此,从我的角度来看,似乎有些东西放错了地方。

最新更新