如何在 Ember.js 中从一个 ArrayController 的选定值更新另一个 ArrayController
How to update content of one ArrayController from the selected value of another ArrayController in Ember.js
我在余烬.js中有以下问题。子控制器依赖于父控制器中的选定值来确定其内容。在数据库中,子项具有parent_id引用。
App.parentsController = Em.ArrayController.create({
content: [],
selected: null
});
App.sonsController = Em.ArrayController.create({
// the value of content depends on the id of
// the selected item in the parentsController
content: [],
selected: null
});
App.daughtersController = Em.ArrayController.create({
// the value of content depends on the id of
// the selected item in the parentsController
content: [],
selected: null
});
我宁愿解决这个问题,而父控制器不必了解其他控制器的任何信息。这应该可以通过观察器、绑定甚至计算来实现,但我不知道从哪里开始。任何帮助将不胜感激。
您可以使用绑定系统。sonsController
需要观察 parentsController.selected
属性,然后更新其内容。
以下是如何执行此操作的示例:
App.parentsController = Em.ArrayController.create({
content: [],
selected: null
});
App.sonsController = Em.ArrayController.create({
parentControllerBinding: 'App.parentsController',
content: [],
updateContent: function() {
var selected = this.getPath('parentController.selected');
var newContent = Ember.A();
newContent.pushObject(selected);
this.set('content', newContent);
}.observes('parentController.selected')
});
这是相关的jsfiddle。
注意:您也可以直接绑定所选属性:
App.sonsController = Em.ArrayController.create({
parentSelectedBinding: 'App.parentsController.selected',
...
updateContent: function() {
...
}.observes('parentSelected')
})
相关文章:
- Ember.js ArrayController usage
- ArrayController排序-每条语句-模型
- 通过访问Ember.ArrayController获取话语中徽章的列表
- 如何在Ember中以编程方式执行ArrayController[index]
- 如何对Ember Model支持的ArrayController进行排序
- 如何从ArrayController访问ItemController
- ArrayController 在 Ember 中的意义何在.js
- 如何使用 Ember-CLI 在 ArrayController 中获取 Ember-Data 值
- 什么是ArrayController.itemController的ObjectController类似物
- 如何在 Ember.js 中从一个 ArrayController 的选定值更新另一个 ArrayController
- EmberJS: ArrayController -> ArrayController -> ObjectC
- 循环遍历 ArrayController 失败,因为它不是数组,即使控制器具有正确的数据模型也是如此
- 当ArrayController重新排序时,Ember itemController将被重新实例化
- Ember.js无法设置ArrayController的内容
- 如何对arraycontroller中的子对象进行排序
- 在这种情况下,当我更新arrayController内容时,余烬将重新渲染DOM中的所有li
- Emberjs从ArrayController填充Ember下拉框
- ArrayController属性返回字符串字面量
- 找出在Ember ArrayController中哪个单独的项目发生了变化
- 在Ember中,我如何在ArrayController的内容被修改后更新视图