Ember.js 如何在车把中引用childview?
我有一个集合视图,如下所示:Ember.js 如何在车把中引用childview?,ember.js,collectionview,Ember.js,Collectionview,我有一个集合视图,如下所示: Ember.Widget.ParentView = Ember.CollectionView.extend({ content: ['childView1', 'childView2'], fnameBinding: ChildView1.fname, lnameBinding: ChildView1.lname, ChildView1: Ember.View.extend({ templateName: 'Ch
Ember.Widget.ParentView = Ember.CollectionView.extend({
content: ['childView1', 'childView2'],
fnameBinding: ChildView1.fname,
lnameBinding: ChildView1.lname,
ChildView1: Ember.View.extend({
templateName: 'ChildView1',
fname: 'David',
lname: 'Johnson',
}),
ChildView2: Ember.View.extend({
fnameBinding: '_parentView.fname',
lnameBinding: '_parentView.lname',
})
});
如果我想在ChildView1.handlebar中显示名称,我应该如何引用fname?以下操作不起作用:
<script type="text/x-handlebars" name="ChildView1">
{{fname}}{{lname}}
</script>
{{fname}}{{lname}
谢谢你的帮助 使用CollectionView:
Ember.CollectionView
内容应该是对象的集合(请参阅):
Ember.CollectionView是Ember.View的子代,负责管理集合(数组或类似数组的对象),方法是为数组中的每个项目维护子视图对象和关联的DOM表示,并确保在添加、删除数组中的项目时更新子视图及其关联的呈现HTML,或者被替换
例如,您可以创建一个模型App.Name
,该模型具有fName和lName属性(此处默认设置为null):
然后创建此模型的实例:
App.name1 = App.Name.create({fName: 'David', lName: 'Johnson'});
App.name2 = App.Name.create({fName: 'Stack', lName: 'Overflow'});
最后,在CollectionView中显示它们:
App.ParentView = Ember.CollectionView.extend({
content: [App.name1, App.name2],
itemViewClass: Ember.View.extend({
template: Ember.Handlebars.compile('firstName: {{content.fName}}, lastName: {{content.lName}}')
}),
});
你可以用这把小提琴试试:
使用视图:
你也可以在这把小提琴中做到这一点:
App.ParentView = Ember.CollectionView.extend({
content: [App.name1, App.name2],
itemViewClass: Ember.View.extend({
template: Ember.Handlebars.compile('firstName: {{content.fName}}, lastName: {{content.lName}}')
}),
});