如何使用Em.ContainerView的内部模板作为子模板

时间:2012-02-03 11:11:43

标签: javascript ember.js

我创建了一个ListView,我希望能够这样做:

{{#view UI.ListView}}
     <div class="icon"><img src="{{icon}}" /></div>
     <span class="name">{{name}}</span>
{{/view}}

并使用:

<div class="icon"><img src="{{icon}}" /></div>
<span class="name">{{name}}</span>

作为childView模板。

我该怎么做?

编辑:也许我的问题不够清楚。以下是我最终的结果:https://gist.github.com/1626943(见第27-30行)。 我试图获取视图的内部模板字符串,但这在任何地方都不可用(至少我找不到它)。只有编译版本可用。但这似乎已经足够了。

2 个答案:

答案 0 :(得分:1)

  1. 只是想指出你应该为图片src使用bindAttr帮助器。

  2. 我认为Dan的答案不会起作用,因为它会将每个项目绑定到entry,然后在子视图中使用item.name

  3. 我把一个JS小提琴放在一起展示这两件事:http://jsfiddle.net/tomwhatmore/xXq7e/1/

答案 1 :(得分:0)

list.handlebars应如下所示:

{{#each items}}
{{view App.ShowItemView entryBinding="this"}}
{{/each}}

并且,show.handlebars应该看起来像:

<div class="icon"><img src="{{icon}}" /></div>
<span class="name">{{item.name}}</span>