在emberjs中使用bind-attr helper和input helper

时间:2014-11-18 22:21:55

标签: ember.js handlebars.js helpers

我想使用bind-attr和输入帮助器,所以我可以将类分配给我的输入字段。我有一个解决方法,就像创建父dom并在那个

上使用bind-attr一样
<td {{bind-attr class="showmsg:alert-msg"}} >{{input type="text" value=rank}}</td> 

如何在输入助手中使用bind-attr?

1 个答案:

答案 0 :(得分:2)

有关一般视图自定义,请参阅Views: Customizing a View's Element


您可以使用classNameBindings与上面bind-attr中使用的大致相同的种类。

在视图中:

export default Ember.TextField.extend({
  classNameBindings: ['showmsg:alert-msg'],
  showmsg: true
});

如果您想执行动态类等操作,可以将值传递到view,例如controller

在模板中:

{{view 'some-td-view' classBinding="typeClass"}}

其中typeClass是指controller

上的属性

在控制器中:

typeClass: function() {
    return this.get('type');
}.property('type')

在视图中(views / some-td-view.js):

export default Ember.TextField.extend({
  tagName: 'td',
  classNames: ['some-default-class'],
});

因此依赖于controller的{​​{1}}值,您可以拥有变量typetypeClass的{​​{1}}会产生以下视图:

type

而单multi会导致:

<td class="some-default-class multi"></td>