diff --git a/mixins/view_support.js b/mixins/view_support.js index 2f9eddd..36103fb 100644 --- a/mixins/view_support.js +++ b/mixins/view_support.js @@ -17,7 +17,7 @@ Flame.ViewSupport = { // Remove classNames up to Flame.View to make it easier to define custom // styles for buttons, checkboxes etc... // We only want to do this in the init of class that sets the flag - if (this.get('resetClassNames') && Object.getPrototypeOf) { + if (this.get('resetClassNames')) { var superClassNames = this._collectSuperClassNames(); var classNames = this.get('classNames').removeObjects(superClassNames); this.set('classNames', classNames); @@ -48,7 +48,13 @@ Flame.ViewSupport = { */ _collectSuperClassNames: function() { var superClassNames = []; - var superClass = Object.getPrototypeOf(Object.getPrototypeOf(this)); + var resetingClass = this; + // Find first class in inheritance chain that sets the resetClassNames property + while (resetingClass && !resetingClass.hasOwnProperty('resetClassNames') && resetingClass.constructor !== Flame.View) { + resetingClass = Object.getPrototypeOf(resetingClass); + } + // Collect classNames from it's super classes + var superClass = Object.getPrototypeOf(resetingClass); while (superClass && superClass.constructor !== Flame.View) { superClassNames.pushObjects(superClass.classNames || []); superClass = Object.getPrototypeOf(superClass); diff --git a/views/lazy_tree_item_view.js b/views/lazy_tree_item_view.js index 297fa86..62bd532 100644 --- a/views/lazy_tree_item_view.js +++ b/views/lazy_tree_item_view.js @@ -2,6 +2,7 @@ Flame.LazyTreeItemView = Flame.LazyListItemView.extend({ classNames: ['flame-tree-item-view'], + classNameBindings: ['isExpanded'], itemContent: '{{view.content}}', isExpanded: false,