From f04181d468ed75f92f2cbee70060150249db13a3 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Thu, 5 Nov 2015 22:51:30 -0600 Subject: [PATCH] feat(navbarStyle): set navbar color by config/attr --- ionic/components/app/id.ts | 14 +++++++++++++- ionic/components/navbar/navbar.ts | 17 +++++++++++++++-- ionic/components/tabs/tabs.ts | 14 ++------------ 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/ionic/components/app/id.ts b/ionic/components/app/id.ts index 746b8b459d..3f03146128 100644 --- a/ionic/components/app/id.ts +++ b/ionic/components/app/id.ts @@ -1,4 +1,4 @@ -import {AppViewManager, ElementRef, Directive} from 'angular2/angular2'; +import {AppViewManager, ElementRef, Directive, Renderer} from 'angular2/angular2'; import {IonicApp} from './app'; @@ -47,3 +47,15 @@ export class IdRef { this.app.unregister(this.id); } } + + +@Directive({ + selector: '[attr]', + inputs: ['attr'] +}) +export class Attr { + constructor(private renderer: Renderer, private elementRef: ElementRef) {} + onInit() { + this.renderer.setElementAttribute(this.elementRef, this.attr, ''); + } +} diff --git a/ionic/components/navbar/navbar.ts b/ionic/components/navbar/navbar.ts index 589103474a..425ab07c7a 100644 --- a/ionic/components/navbar/navbar.ts +++ b/ionic/components/navbar/navbar.ts @@ -69,7 +69,8 @@ class BackButtonText extends Ion { '[hidden]': '_hidden' }, inputs: [ - 'hideBackButton' + 'hideBackButton', + 'navbarStyle' ], directives: [BackButton, BackButtonText, Icon] }) @@ -82,9 +83,16 @@ export class Navbar extends ToolbarBase { renderer: Renderer ) { super(elementRef, config); + this.app = app; + this.renderer = renderer; + renderer.setElementClass(elementRef, 'toolbar', true); - this.app = app; + let navbarStyle = config.get('navbarStyle'); + if (navbarStyle) { + renderer.setElementAttribute(elementRef, navbarStyle, ''); + } + viewCtrl && viewCtrl.setNavbar(this); this.bbIcon = config.get('backButtonIcon'); @@ -92,10 +100,15 @@ export class Navbar extends ToolbarBase { } onInit() { + super.onInit(); let hideBackButton = this.hideBackButton; if (typeof hideBackButton === 'string') { this.hideBackButton = (hideBackButton === '' || hideBackButton === 'true'); } + + if (this.navbarStyle) { + this.renderer.setElementAttribute(this.elementRef, this.navbarStyle, ''); + } } getBackButtonRef() { diff --git a/ionic/components/tabs/tabs.ts b/ionic/components/tabs/tabs.ts index 9a591d97c4..4d7543c666 100644 --- a/ionic/components/tabs/tabs.ts +++ b/ionic/components/tabs/tabs.ts @@ -1,24 +1,14 @@ -import {Directive, ElementRef, Optional, Host, NgFor, NgIf, forwardRef, ViewContainerRef, Renderer} from 'angular2/angular2'; +import {Directive, ElementRef, Optional, Host, NgFor, NgIf, forwardRef, ViewContainerRef} from 'angular2/angular2'; import {Ion} from '../ion'; import {IonicApp} from '../app/app'; +import {Attr} from '../app/id'; import {Config} from '../../config/config'; import {ViewController} from '../nav/view-controller'; import {ConfigComponent} from '../../config/decorators'; import {Icon} from '../icon/icon'; -@Directive({ - selector: '[attr]', - inputs: ['attr'] -}) -class Attr { - constructor(private renderer: Renderer, private elementRef: ElementRef) {} - onInit() { - this.renderer.setElementAttribute(this.elementRef, this.attr, ''); - } -} - /** * _For basic Tabs usage, see the [Tabs section](../../../../components/#tabs) * of the Component docs._