0

所以,我试图让一个简单的 propertyBinding 与 emberjs 一起工作。具体来说,我有一个带有内容属性的控制器,它在某些情况下会更新,还有一个视图,它需要该内容数组来绘制一些图表。

我做了最基本的例子,它似乎不起作用。我的简单示例如下:

Appname.IndexController = Ember.Controller.extend({
    value: 'bla'
});

Appname.IndexView = Ember.View.extend({
    templateName: 'Index',
    propertyBinding: 'Appname.IndexController.value',
    didInsertElement: function() {
        console.log('Indexview');
        console.log(this.get('property'));
    }
 });

就这么简单,它就是行不通。真正奇怪的是,如果我创建另一个测试控制器(而不是扩展它),例如

Appname.TestController = Ember.Controller.create({
    value: 'jpopo'
});

属性绑定突然起作用了。但我就是无法让它与 IndexController 一起工作(如果需要信息,在 Applicaton.hbs 我有一个出口)感谢您的帮助

4

1 回答 1

1

绑定适用于实例化的对象,而不适用于对象定义。

Appname.IndexController是控制器定义,而不是实例。这不是您要绑定的内容。Ember.js 应用程序将创建一个 的实例IndexController,它是您要绑定到的已创建实例:

要从视图访问实际的控制器实例,请使用controller.

Appname.IndexView = Ember.View.extend({
  templateName: 'index',
  propertyBinding: 'controller.value',
  didInsertElement: function() {
    console.log(this.get('property'));
  }
});

当然,前提是您遵循Ember.js 约定

于 2013-03-13T17:06:34.327 回答