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