在我的Ember应用程序中,我最初从根级别(/)开始,我有多个链接(比如Link1,Link2,Link3)
现在每个链接都显示一个公共网格,即我使用相同的路径/控制器/模板JS,但通过在控制器上动态设置一些属性来重新渲染网格
因此,在我的application.js中,我做了
this.controllerFor('my-grid').set('attr1', params[0].value);
this.controllerFor('my-grid').set('attr2', params[1].value);
this.transitionTo('my-grid');
这是转换的正确方法吗?
我的意思是,特别是我需要
this.transitionTo('my-grid');
只被调用一次(比如从root用户点击link1),因为在那之后点击link2,link3只需要在同一个控制器上更改属性值,并且应该重新渲染网格(在服务器之后) api电话)
请建议我是否有可以检查来电的情况 this.transitionTo( '我的栅');
答案 0 :(得分:0)
在您的申请中,您可以查看ApplicationController.currentPath
:
this.controllerFor('my-grid').setProperties({
attr1: params[0].value,
attr2: params[1].value
});
if (this.controllerFor('application').get('currentPath') !== 'my-grid') {
this.transitionTo('my-grid');
}