我想使用Ember.js视图来呈现一个集合。以下是我的要求:
使用{{each}}助手并不能满足第一个需求。使用{{collection}},我无法在条件上将CSS类分配给LI (我不是说不可能,只是不知道怎么做)。如果我的LI被定义为Ember.View,那么似乎可以满足1和2。但是最后我为简单的用例编写了许多样板。
这里是吉斯宾和我的代码,目标是以粗体显示我的名字,我想知道是否可能。
发布于 2013-03-04 13:03:24
我认为,如果不编写项目视图类,您就无法逃脱。不过,这并不是什么样板:
App.MyItemView = Ember.View.extend({
classNameBindings: 'content.selected:selected'
});车把:
{{#collection contentBinding="view.options" itemViewClass="App.MyItemView"
tagName="ul" itemTagName="li"}}
{{view.content.selected}} – {{view.content.name}}
{{/collection}}我的替代方案是将项目的内容封装到一个附加元素中:
{{#collection contentBinding="view.options" tagName="ul" itemTagName="li"}}
<div {{bindAttr class="view.content.selected:selected"}}>
{{view.content.selected}} – {{view.content.name}}
</div>
{{/collection}}并相应地调整CSS:
li > .selected {
font-weight: bold;
}这样您就不需要创建视图类了,但我不确定对HTML结构的更改是否为您所接受。
https://stackoverflow.com/questions/15198080
复制相似问题