Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 控制器上的视图观察者。1.0.0rc8后模型不工作_Ember.js - Fatal编程技术网

Ember.js 控制器上的视图观察者。1.0.0rc8后模型不工作

Ember.js 控制器上的视图观察者。1.0.0rc8后模型不工作,ember.js,Ember.js,我有一个文本区域,当其关联控制器的模型发生变化时,该区域应接收焦点 在rc8之前,我使用了以下观察者: modelChanged: function() { this.set('focusing', true); this.$().focus(); this.set('focusing', false); }.observes('controller.model'), 我无法让它在1.0.0版本或rc8中工作。我已验证控制器中的观察员是否在预期情况下开火: modelChanged

我有一个文本区域,当其关联控制器的模型发生变化时,该区域应接收焦点

在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'),
不过,我想说的是,不要让该级别的控制器关心特定的视图(我希望使用pull而不是push)


经过进一步挖掘,我发现了这张变更通知:

  • 制作TextField和TextArea组件

这会将我的textarea子类与控制器/视图层次结构断开

在最新版本的ember 1.0.0中,视图的
TextField
TextArea
转换为组件
ember.Component
,并且由于作为独立视图的组件不知道其上下文,
controller
属性不再引用
controller

也就是说,您仍然可以完成您正在尝试做的事情的一种方法是使用未记录的
targetObject
,它在视图的周围上下文中引用
控制器

modelChanged: function() {
  this.set('focusing', true);
  this.$().focus();
  this.set('focusing', false);
}.observes('targetObject.model'),

希望有帮助。

最后我使用了一个模型属性&binding,但是了解targetObject非常有帮助