我使用angularJS v1.0.0创建了一个指令,一切正常,现在我更新了角度到v1.0.7并且我的指令不再工作了,我尝试了很多不同的方法来修复它但是我无法使它工作
我试图为$ routeChangeStart替换$ beginRouteChange,为$ routeChangeSuccess替换$ afterRouteChange但仍无法正常工作
它只是一个文本,显示应用程序繁忙时的“加载...”按摩。你可以在这里看到解释:
http://mhevery.github.io/angular-phonecat/app/#/phones
指令:
working version in AngularJS 1.0.0 but not in v1.0.7
'use strict';
/* Directives */
var directive = {};
directive.butterBar = function($rootScope) {
return {
restrict: 'C',
link: function(scope, element) {
$rootScope.$on('$beginRouteChange', function() {
element.addClass('show');
element.text('Loading...');
});
$rootScope.$on('$afterRouteChange', function() {
element.removeClass('show');
element.text('');
});
}
};
};
angular.module('phonecatDirectives', []).directive(directive);
谢谢!
答案 0 :(得分:5)
捕捉路线变化的正确事件是:
$routeChangeStart
$routeChangeSuccess
$routeChangeError
$routeUpdate
在您的情况下使用:
$rootScope.$on('$routeChangeStart', function() {
element.addClass('show');
element.text('Loading...');
});
$rootScope.$on('$routeChangeSuccess', function() {
element.removeClass('show');
element.text('');
});
答案 1 :(得分:1)
请查看文档:{{3}}
$beginRouteChange
和$afterRouteChange
不受支持。
而是使用$routeChangeStart
和$routeChangeSuccess
。