С emberjs, как расширить параметры attributeBindings из родительского представления? - PullRequest
3 голосов
/ 28 марта 2012

Я пытаюсь иметь некоторое наследование с attributeBindings между двумя View.

(function(exports) {
Ember.MobileBaseView = Ember.View.extend({
    attributeBindings:['data-role', 'data-theme'],
    'data-theme': 'a'
});
})({});


(function(exports) {
Ember.ToolbarBaseView = Ember.MobileBaseView.extend({
    attributeBindings:this.get('attributeBindings').concat(['data-position']),
    'data-position': function() {

Я попробую this.get ('attributeBindings'). Concat (['data-position']) и Ember.MobileBaseView.get ('attributeBindings'). Concat ([' data-position ']) и Ember.MobileBaseView.attributeBindings.concat ([' data-position '])

Возможно, я должен просто сделать attributeBindings: ['data-role', 'data-theme', 'data-position'], , но я бы лучше нашел лучшее решение.

1 Ответ

7 голосов
/ 28 марта 2012

Ember.View#attributeBindings является составным свойством , что означает, что если вы перезаписаете его в подклассе, значения из суперкласса будут объединены. Так что это работает, см http://jsfiddle.net/pangratz666/r72dz/:

Ember.MobileBaseView = Ember.View.extend({
    attributeBindings: ['data-role', 'data-theme'],
    'data-theme': 'a'
});


Ember.ToolbarBaseView = Ember.MobileBaseView.extend({
    attributeBindings: ['data-position']
});​
...