使用emberjs,如何从父视图扩展attributeBindings参数?

tol*_*ard 3 javascript inheritance attributes ember.js

我尝试在两个View之间使用attributeBindings进行一些继承.

(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() {
Run Code Online (Sandbox Code Playgroud)

我试过this.get('attributeBindings').concat(['data-position'])Ember.MobileBaseView.get('attributeBindings').concat(['data-position'])Ember.MobileBaseView.attributeBindings .concat([ '数据位'])

也许,我应该只做attributeBindings:['data-role','data-theme','data-position'],但我宁愿找到更好的解决方案.

pan*_*atz 7

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']
});?
Run Code Online (Sandbox Code Playgroud)