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}}')
  }),
});