如何在Ember View的每个语句中动态生成css类

时间:2013-08-03 18:48:51

标签: dynamic ember.js each

  <div>
  {{#each value in controller}}
  <div {{classNameBindings "col-lg-{{value}}"}}>{{value}}</div>
  {{/each}}
  </div>

以上是我的部分观点。

我想生成类:col-lg-1,col-lg-2等 我的控制器是:

App.circleController = Ember.ArrayController.extend({
    setupController: function(controller) {
        controller.set('content', [1,2,3,4,5,6,7]);
    }
});

为什么我收到错误:断言失败:Ember.CollectionView的内容必须实现Ember.Array。 ?

1 个答案:

答案 0 :(得分:1)

我使用自定义视图将动态命名的类应用于each帮助程序内的项目。类名在视图内由属性生成,而不是依赖于提供的索引。

App.ItemView = Ember.View.extend({
    classNameBindings: ['itemClass'],
    index: null,

    itemClass: function() {
        return 'class-'+this.get('index');
    }.property('index')
});

在模板中,我通过每次迭代中的{{view}}帮助程序提供索引。

{{#each value in controller}}
    {{#view App.ItemView indexBinding="value"}}
        Item #{{value}}
    {{/view}}
{{/each}}

仔细看看check out this jsfiddle