diff --git a/src/components/aside/aside.js b/src/components/aside/aside.js
index ecba2f51da..544ddc4460 100644
--- a/src/components/aside/aside.js
+++ b/src/components/aside/aside.js
@@ -1,5 +1,4 @@
import {Component, Template, Inject, Parent, NgElement} from 'angular2/angular2'
-import {ComponentConfig} from 'ionic2/config/component-config'
import * as types from 'ionic2/components/aside/extensions/types'
import * as gestures from 'ionic2/components/aside/extensions/gestures';
import {IonicComponent} from 'ionic2/config/component'
@@ -58,15 +57,26 @@ export class Aside {
}
}
+@Component({
+ selector: 'ion-aside',
+ bind: {
+ content: 'content',
+ side: 'side',
+ dragThreshold: 'dragThreshold'
+ }
+})
+
new IonicComponent(Aside, {
bind: {
side: {
- default: 'left'
+ value: 'left'
},
type: {
- ios: 'reveal',
- android: 'overlay',
- default: 'overlay',
+ defaults: {
+ ios: 'reveal',
+ android: 'overlay',
+ base: 'overlay',
+ }
},
dragThreshold: {},
content: {},
diff --git a/src/components/toolbar/back-button.js b/src/components/toolbar/back-button.js
index e4bee6a23c..2c04dc4ffd 100644
--- a/src/components/toolbar/back-button.js
+++ b/src/components/toolbar/back-button.js
@@ -1,32 +1,37 @@
import {NgElement, Component, Template} from 'angular2/angular2'
-import {ComponentConfig} from 'ionic2/config/component-config'
-
-export let BackButtonConfig = new ComponentConfig('back-button')
-
-BackButtonConfig
- .platform('ios', instance => {
- instance.domElement.querySelector('.back-button-icon').classList.add('ion-ios-arrow-back')
- instance.domElement.querySelector('.back-default').textContent = 'Back'
- })
- .platform('android', instance => {
- instance.domElement.querySelector('.back-button-icon').classList.add('ion-android-arrow-back')
- })
+import {IonicComponent} from 'ionic2/config/component'
@Component({
selector: '.back-button',
- services: [BackButtonConfig]
})
@Template({
inline: `
-
+
`
})
export class BackButton {
- constructor(@NgElement() ngEle:NgElement, configFactory: BackButtonConfig) {
+ constructor(
+ @NgElement() ngEle:NgElement
+ ) {
this.domElement = ngEle.domElement
- this.config = configFactory.create(this);
+
+ setTimeout(() => {
+ this.config = BackButton.config.invoke(this)
+ })
}
}
+
+new IonicComponent(BackButton, {
+ bind: {
+ icon: {
+ defaults: {
+ ios: 'ion-ios-arrow-back',
+ android: 'ion-android-arrow-back',
+ base: 'ion-chevron-left'
+ }
+ }
+ }
+})
diff --git a/src/config/component.js b/src/config/component.js
index 0349cea5bf..c6e10c3c7d 100644
--- a/src/config/component.js
+++ b/src/config/component.js
@@ -4,6 +4,10 @@ import {platform} from 'ionic2/platform/platform'
let platforms = Object.keys(platform.registry)
let platformName = platform.getName()
+// Low-level: how the user will override
+// BackButton.config.bind.icon.value = 'ion-chevron-right'
+// BackButton.config._computeDefaultValue(BackButton.config.bind.icon)
+
export class IonicComponent {
constructor(ComponentClass, {
bind,
@@ -18,8 +22,8 @@ export class IonicComponent {
let binding = bind[attrName]
if (util.isObject(binding)) {
binding.property || (binding.property = attrName)
+ this._computeDefaultValue(binding)
// TODO recompute defaultValue when user possibly adds a binding
- binding._defaultValue = binding[platformName] || binding.default;
}
}
@@ -29,6 +33,8 @@ export class IonicComponent {
// }
}
_computeDefaultValue(binding = {}) {
+ let defaults = binding.defaults || {}
+ binding._defaultValue = binding.value || defaults[platformName] || defaults.base;
}
invoke(instance) {
@@ -50,13 +56,11 @@ export class IonicComponent {
let cases = (config.delegates || {})[delegateName] || []
for (let i = 0; i < cases.length; i++) {
let delegateCase = cases[i]
- try {
- if (util.isArray(delegateCase)) {
- if (delegateCase[0](instance)) return new delegateCase[1](instance)
- } else {
- return new delegateCase(instance)
- }
- }catch(e){debugger;}
+ if (util.isArray(delegateCase)) {
+ if (delegateCase[0](instance)) return new delegateCase[1](instance)
+ } else {
+ return new delegateCase(instance)
+ }
}
}
}
diff --git a/src/platform/platform.js b/src/platform/platform.js
index ceb5d8184f..23333e3f50 100644
--- a/src/platform/platform.js
+++ b/src/platform/platform.js
@@ -44,7 +44,7 @@ class PlatformController {
detect() {
for (let name in this.registry) {
if (this.registry[name].matcher()) {
- return platform
+ return this.registry[name]
}
}
return this.defaultPlatform
@@ -74,7 +74,7 @@ platform.register({
// Last case is a catch-all
platform.setDefaultPlatform({
- name: 'default'
+ name: 'base'
})
platform.set( platform.detect() )