diff --git a/core/elements/ons-navigator.es6 b/core/elements/ons-navigator.es6 index 09e553beb5..30c1e0e96e 100644 --- a/core/elements/ons-navigator.es6 +++ b/core/elements/ons-navigator.es6 @@ -593,7 +593,7 @@ limitations under the License. * @param {Function} Animator */ window.OnsNavigatorElement.registerAnimator = function(name, Animator) { - if (!(Animator.prototype instanceof NavigatorTransitionAnimator)) { + if (!(Animater.prototype instanceof NavigatorTransitionAnimator)) { throw new Error('"Animator" param must inherit NavigatorTransitionAnimator'); } diff --git a/framework/directives/navigator.js b/framework/directives/navigator.js index c49981849c..cb05f200c6 100755 --- a/framework/directives/navigator.js +++ b/framework/directives/navigator.js @@ -464,30 +464,18 @@ (function() { 'use strict'; - angular.module('onsen').directive('onsNavigator', function(NavigatorView, $onsen) { + var lastReady = window.OnsNavigatorElement.rewritables.ready; + window.OnsNavigatorElement.rewritables.ready = ons._waitDiretiveInit('ons-navigator', lastReady); - var lastReady = window.OnsNavigatorElement.rewritables.ready; - // wait for AngularJS binding initilization. - window.OnsNavigatorElement.rewritables.ready = function(element, callback) { - if (angular.element(element).data('ons-navigator')) { - lastReady(element, callback); - } else { - var listen = function() { - lastReady(element, callback); - element.removeEventListener('ons-navigator:init', listen, false); - }; - element.addEventListener('ons-navigator:init', listen, false); - } - }; - - var lastLink = window.OnsNavigatorElement.rewritables.link; - window.OnsNavigatorElement.rewritables.link = function(navigatorElement, target, callback) { - var view = angular.element(navigatorElement).data('ons-navigator'); - view._compileAndLink(target, function(target) { - lastLink(navigatorElement, target, callback); - }); - }; + var lastLink = window.OnsNavigatorElement.rewritables.link; + window.OnsNavigatorElement.rewritables.link = function(navigatorElement, target, callback) { + var view = angular.element(navigatorElement).data('ons-navigator'); + view._compileAndLink(target, function(target) { + lastLink(navigatorElement, target, callback); + }); + }; + angular.module('onsen').directive('onsNavigator', function(NavigatorView, $onsen) { return { restrict: 'E', diff --git a/framework/directives/splitterContent.js b/framework/directives/splitterContent.js index 523e5bfffc..96a882fc9d 100644 --- a/framework/directives/splitterContent.js +++ b/framework/directives/splitterContent.js @@ -54,17 +54,7 @@ 'use strict'; var lastReady = window.OnsSplitterContentElement.rewritables.ready; - window.OnsSplitterContentElement.rewritables.ready = function(element, callback) { - if (angular.element(element).data('ons-splitter-content')) { - lastReady(element, callback); - } else { - var listen = function() { - lastReady(element, callback); - element.removeEventListener('ons-splitter-content:init', listen, false); - }; - element.addEventListener('ons-splitter-content:init', listen, false); - } - }; + window.OnsSplitterContentElement.rewritables.ready = ons._waitDiretiveInit('ons-splitter-content', lastReady); var lastLink = window.OnsSplitterContentElement.rewritables.link; window.OnsSplitterContentElement.rewritables.link = function(element, target, callback) { diff --git a/framework/directives/splitterSide.js b/framework/directives/splitterSide.js index 120d25178e..51bf91cddf 100644 --- a/framework/directives/splitterSide.js +++ b/framework/directives/splitterSide.js @@ -296,17 +296,7 @@ 'use strict'; var lastReady = window.OnsSplitterSideElement.rewritables.ready; - window.OnsSplitterSideElement.rewritables.ready = function(element, callback) { - if (angular.element(element).data('ons-splitter-side')) { - lastReady(element, callback); - } else { - var listen = function() { - lastReady(element, callback); - element.removeEventListener('ons-splitter-side:init', listen, false); - }; - element.addEventListener('ons-splitter-side:init', listen, false); - } - }; + window.OnsSplitterSideElement.rewritables.ready = ons._waitDiretiveInit('ons-splitter-side', lastReady); var lastLink = window.OnsSplitterSideElement.rewritables.link; window.OnsSplitterSideElement.rewritables.link = function(element, target, callback) { diff --git a/framework/directives/tabBar.js b/framework/directives/tabBar.js index 9851bdd6ba..a4d2466b5c 100755 --- a/framework/directives/tabBar.js +++ b/framework/directives/tabBar.js @@ -334,29 +334,18 @@ (function() { 'use strict'; - angular.module('onsen').directive('onsTabbar', function($onsen, $compile, $parse, TabbarView) { + var lastReady = window.OnsTabbarElement.rewritables.ready; + window.OnsTabbarElement.rewritables.ready = ons._waitDiretiveInit('ons-tabbar', lastReady); - var lastReady = window.OnsTabbarElement.rewritables.ready; - // wait for AngularJS binding initilization. - window.OnsTabbarElement.rewritables.ready = function(element, callback) { - if (angular.element(element).data('ons-tabbar')) { - lastReady(element, callback); - } else { - var listen = function() { - lastReady(element, callback); - element.removeEventListener('ons-tabbar:init', listen, false); - }; - element.addEventListener('ons-tabbar:init', listen, false); - } - }; + var lastLink = window.OnsTabbarElement.rewritables.link; + window.OnsTabbarElement.rewritables.link = function(tabbarElement, element, callback) { + var view = angular.element(tabbarElement).data('ons-tabbar'); + view._compileAndLink(element, function(element) { + lastLink(tabbarElement, element, callback); + }); + }; - var lastLink = window.OnsTabbarElement.rewritables.link; - window.OnsTabbarElement.rewritables.link = function(tabbarElement, element, callback) { - var view = angular.element(tabbarElement).data('ons-tabbar'); - view._compileAndLink(element, function(element) { - lastLink(tabbarElement, element, callback); - }); - }; + angular.module('onsen').directive('onsTabbar', function($onsen, $compile, $parse, TabbarView) { return { restrict: 'E', diff --git a/framework/js/onsen.js b/framework/js/onsen.js index a9f50e7e88..bd666b106c 100644 --- a/framework/js/onsen.js +++ b/framework/js/onsen.js @@ -394,6 +394,25 @@ limitations under the License. return this._onsenService; }; + /** + * @param {String} elementName + * @param {Function} lastReady + * @return {Function} + */ + ons._waitDiretiveInit = function(elementName, lastReady) { + return function(element, callback) { + if (angular.element(element).data(elementName)) { + lastReady(element, callback); + } else { + var listen = function() { + lastReady(element, callback); + element.removeEventListener(elementName + ':init', listen, false); + }; + element.addEventListener(elementName + ':init', listen, false); + } + }; + }; + /** * @param {String} page * @param {Object} [options]