我正在尝试根据所选标签控制器的内容过滤文档控制器的内容。我不确定这是否是最佳解决方案,所以请随意提出替代方案。
除了这种不确定性之外,任何人都可以解释为什么assertion failed: Must use Ember.set() to access this property
会产生以下结果吗?特别是selectedTagsBinding: "App.selectedTagsController.content"
失败了。
App = Ember.Application.create();
App.documentsController = Ember.ArrayProxy.create({
content: [],
selectedTagsBinding: "App.selectedTagsController.content"
});
App.selectedTagsController = Ember.ArrayProxy.create({
content: [ new Ember.Object(), new Ember.Object() ]
});
答案 0 :(得分:4)
实际上这不是错误。您应该像这样设置控制器:
App.set('documentsController', Ember.ArrayProxy.create({
selectedTagsBinding: "App.selectedTagsController"
}));
App.set('selectedTagsController', Ember.ArrayProxy.create({
content: [
Ember.Object.create({
name: "john"
}), Ember.Object.create({
name: "sal"
})
]
}));
我写了一篇简短的博文,详细解释了您的错误:http://ud3323.github.com/2012/02/15/ember-controllers-and-the-runloop.html。
答案 1 :(得分:2)
更新:正如ud3323在他的回答中所述,这不是一个错误,这个答案是在我了解App.set
之前写的
这显然是绑定的错误。在App.selectedTagsController
之前移动App.documentsController
的声明。
App = Ember.Application.create();
App.selectedTagsController = Ember.ArrayProxy.create({
content: [ new Ember.Object(), new Ember.Object() ]
});
App.documentsController = Ember.ArrayProxy.create({
content: [],
selectedTagsBinding: "App.selectedTagsController.content"
});