我有一个文本区域,当其关联控制器的模型发生变化时应该获得焦点。
在rc8之前,我使用了这个观察者:
modelChanged: function() {
this.set('focusing', true);
this.$().focus();
this.set('focusing', false);
}.observes('controller.model'),
我无法在1.0.0版本或rc8中使用它。我已经确认控制器中的观察者会在预期时触发:
modelChanged: function() {
console.log('TextArtController->modelChanged');
}.observes('model'),
但是我会提到不要让控制器在那个级别关注特定视图(我想拉不推)
经过多次挖掘后,我发现了这个变化记录:
这会从控制器/视图层次结构中切断我的textarea子类。
答案 0 :(得分:3)
在最新版本的ember 1.0.0中,视图为TextField
& TextArea
转换为组件Ember.Component
,并且由于组件作为独立视图不知道它的上下文,controller
属性不再引用controller
。
说,你仍然可以完成你想要做的事情的方法是使用未记录的targetObject
引用视图周围环境中的controller
。
modelChanged: function() {
this.set('focusing', true);
this.$().focus();
this.set('focusing', false);
}.observes('targetObject.model'),
希望它有所帮助。