propertyBinding Controller - 视图

时间:2013-03-13 16:55:01

标签: ember.js

所以,我试图让一个简单的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中找到一个出口) 谢谢你的帮助

1 个答案:

答案 0 :(得分: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 conventions