我正在学习 ember.js,我还没有用它构建任何东西。
我将数据存储在模型对象中,并使用控制器充当视图和模型之间的粘合剂。控制器将内容设置为模型的实例,并且视图绑定到控制器中的内容(因此通过代理绑定到模型)。像这样:
// js
App.MyModel = Ember.Object.extend({foo:''});
App.myController = Ember.Object.create({
content: App.MyModel.create()
});
// html
{{view Ember.TextInput valueBinding="App.myController"}}
到现在为止还挺好。但我不知道如何将此范例应用于嵌套集合:
//js
App.ChildController = Ember.ArrayController.extend();
App.NestedModel = Ember.Object.extend({
init: function() {
this._super();
this.set('children', []);
// Here: I can't give a global name for the content binding, and I don't know how to give a relative one
this.set('childController', App.ChildController.create({contentBinding: 'children');
}
});
App.myController = Ember.ArrayController.create({
content:[],
newChild: function() {
this.pushObject(App.NestedModel.create());
}
});
// html
{{#collection contentBinding="App.myController"}}
{{#collection contentBinding="content.childController"}} <!-- nope -->
{{content.childField}}
{{/collection}}
{{/collection}}
这是您可以摆弄的东西:http: //jsfiddle.net/DwheG/
我要问的是:
- 我什至正确地建模东西吗?
- 如何绑定子控制器的内容?我必须使用字符串吗?传入对象 (
this
) 对我不起作用。Ember 的路径解析算法是否记录在任何地方? - 如何将嵌套集合助手绑定到嵌套控制器?