我想在每个我喜欢的控制器的开头运行一个函数:
faraWorkspaceApp.controller('AccountController', function () {
FaraFunctions(); // this function
});
faraWorkspaceApp.controller('DashboardController', function () {
FaraFunctions(); // this function
});
faraWorkspaceApp.controller('ChangePasswordController', function () {
FaraFunctions(); // this function
});
放置此代码并防止在角度js中重复FaraFunctions();
代码的方法在哪里?
答案 0 :(得分:3)
我发现的最佳方式是$viewContentLoaded
:
faraWorkspaceApp.run(function ($rootScope, $location, $state, $templateCache) {
$rootScope.$on('$viewContentLoaded', function (e) {
FaraFunctions();
});
});
答案 1 :(得分:-1)
由于您使用的是ui.router
,请改用stateChangeStart
。
.run(function($rootScope, $location, $state) {
$rootScope.$on( '$stateChangeStart', function(e, toState , toParams
, fromState, fromParams) {
var isLogin = toState.name === "login";
if(isLogin){
return; // no need to redirect
}
});
});