使用Ember.js视图渲染集合
Rendering collection using Ember.js views
我想用Ember.js视图渲染一个集合。以下是我的要求:
- 我不想为集合中的每个项目生成两个变形脚本标签,DOM结构应该严格地只是ul和li(我不介意li内部的变形)
- 我的集合中的每个项目都有一个选定的属性。根据这个属性值,我想将选定的类设置为LI
- 我希望整个东西都定义在一个模板中,只有一个视图在JavaScript中使用这个模板-没有额外的类
使用{{each}}
helper不满足第一个要求。使用{{collection}}
,我无法有条件地将CSS类分配给LI(我不是说这是不可能的,只是不知道如何)。看来是有可能满足我的。和2。如果我的LI被定义为Ember.View
,那么我最终会为简单的用例编写大量的样板文件。
这是jsbin与我的代码,目标是有我的名字以粗体显示,我想知道如果它是可能的。
我认为你不写一个项目视图类是无法摆脱的。这并不是一个样板文件:
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结构的更改是否可以接受
相关文章:
- 何时指定与主干中的集合/视图关联的模型
- 如何在 BackboneJS *木偶* 集合视图中打印行行
- EmberJS:从集合视图访问项视图
- 另一个集合视图中的集合视图
- 主干:从集合视图向集合添加模型
- 主干.js从静态 JSON 呈现集合视图
- 主干集合视图添加未使用模型调用
- 主干集合视图仅渲染集合中的最后一个对象
- 每个主干集合视图
- backbone.js-集合视图给出"TypeError:无法读取属性'el'未定义的“;错误
- Backbone.js集合视图渲染重复项
- Backbone.Marionette:将标题添加到集合视图
- 集合视图未呈现项目视图
- Backbone-简单集合视图-can't打印项目
- 当其中一个模型发生变化时,我如何在Backbone.js中为集合视图附加事件处理程序?
- 将渲染到木偶集合视图中的项目动画化
- 如何将参数传递给集合视图服务器调用
- Backbonejs+MarionetteJD-将Backbone列表视图转换为MarionetteJS集合视图
- 如何添加节到一个带有tagName: 'table'的木偶集合视图
- js集合视图不呈现模型属性