Binding ObjectController上的绑定-Ember.js

Binding ObjectController上的绑定-Ember.js,binding,ember.js,Binding,Ember.js,当您尝试将绑定添加到ObjectController时,它不起作用 App.FailController = Em.ObjectController.extend({ content: null, myBinding: "App.router.myController" // <-- fails }); App.FailController=Em.ObjectController.extend({ 内容:空, myBinding:“App.router.myControl

当您尝试将绑定添加到
ObjectController
时,它不起作用

App.FailController = Em.ObjectController.extend({
    content: null,
    myBinding: "App.router.myController" // <-- fails
});
App.FailController=Em.ObjectController.extend({
内容:空,

myBinding:“App.router.myController”//信用证:这是谁在github完成的

ObjectProxy
将对
set
的任何调用委托给
content
属性,除非
ObjectProxy
实例上存在同名属性。简单的解决方案是在声明绑定之前定义具有所需名称的属性

App.FailController = Em.ObjectController.extend({
    my: null,
    myBinding: "App.router.myController" // <-- works
});
App.FailController=Em.ObjectController.extend({
我的:空,
myBinding:“App.router.myController”//替代解决方案:

App.FailController = Em.ObjectController.extend({
    content: Ember.Object.create(),
    my: function() {
      return App.router.myController;
    }.property('App.router.myController')
});
或者更好:

App.FailController = Em.ObjectController.extend({
    content: Ember.Object.create(),
    my: Ember.computed.alias('App.router.myController')
});

这是可行的。我认为您也不必显式地设置content:null
App.FailController = Em.ObjectController.extend({
    content: Ember.Object.create(),
    my: Ember.computed.alias('App.router.myController')
});