如何为ember视图分配静态数据属性?

时间:2013-04-19 23:42:02

标签: ember.js custom-data-attribute

我需要为Ember.View分配一个静态数据属性,如何在View对象而不是{{view }}标签中设置它。

App.MessagesFormView = Ember.View.extend({
  tagName: 'div',
  classNames: ['modal', 'fade'],
  didInsertElement: function() {
    this.$().modal('show')
  },
  willDestroyElement: function() {
    this.$().modal('hide')
  },
})

2 个答案:

答案 0 :(得分:6)

不幸的是,我没有足够的声誉评论Ola的答案,但我认为稍微好一点的方法是不使用字符串(引号中的文本)来表示数据属性属性名称。相反,在camelCase中编写属性名称,Ember会自动将其绑定到带连字符的属性绑定。例如:

App.MessagesFormView = Ember.View.extend({
  tagName: 'div',
  attributeBindings: ['data-backdrop'], 
  dataBackdrop: 'static', // Binds to data-backdrop. Awesome!
});

我希望这是有道理的!

答案 1 :(得分:4)

必须使用Ember.View对象的attributeBindingsdata-backdropdata-whatever属性来完成此操作。

App.MessagesFormView = Ember.View.extend({
  tagName: 'div',
  classNames: ['modal', 'fade'],
  // Set a data attribute, of a view, requires both an attribute binding and
  // an attribute assignment
  attributeBindings: ['data-backdrop'],
  'data-backdrop': 'static',
  didInsertElement: function() {
    this.$().modal('show')
  },
  willDestroyElement: function() {
    this.$().modal('hide')
  },
})