0

假设我有这段代码:

App.ClickableView = Ember.View.extend({
  click: function(evt) {
    this.get('controller').send('turnItUp', 11); 
  }
});

当我this.get('controller')在视图中执行操作时,我如何确切知道我得到的是哪个控制器?有没有办法将视图绑定到特定的控制器,以便this.get('controller')返回该控制器?

4

1 回答 1

1

当我在视图中执行 this.get('controller') 时,我如何确切知道我得到的是哪个控制器?

console.log(this.get('controller').toString());

有没有办法将视图绑定到特定控制器,以便 this.get('controller') 返回该控制器?

是和不是。是的,因为controller它是一个属性,所以可以像其他任何东西一样设置。但是不,因为除非您真的知道自己在做什么,否则这可能不是一个好主意。请确保您使用了适当的帮助程序 - 请参阅此帖子以了解选项的概述:

http://darthdeus.github.io/blog/2013/02/10/render-control-partial-view/

通常,ember 会负责将视图的控制器属性设置为适当的控制器。所以在大多数情况下,视图不应该关心它正在使用什么控制器。添加该控制器所需的任何逻辑或属性。如果控制器需要访问另一个控制器的数据或逻辑,请使用控制器的需求属性启用跨控制器通信。

于 2013-07-06T03:17:38.703 回答