我有我的菜單指令。 在$ rootScope中,我設置公司和用戶權限。 取決於選定的公司和我呈現菜單的權限。角度1 Ctrl功能從指令後app.run功能
我在app.run函數中設置公司和用戶權限。這工作到目前爲止,但有時菜單指令在服務調用完成之前呈現。 Service Get Call完成後是否有可能呈現菜單指令?
由於
app.run(function($rootScope, $http, $stateParams, $state, $q, goliathCompanyCheck)
{
....
....
....
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
var company_id = toParams.company_id;
if (company_id) {
var perm = goliathCompanyCheck.get({object: company_id},
function(response){
if (!response || !response.status || response.status == 'ERROR') {
$state.go('company_selector');
}
$rootScope.currentCompany = response.data.company;
},
function(response){
$state.go('company_selector');
});
}
});
});
僅僅是明確的......你展示在app.run沒有設置權限和公司名稱,但代碼,而不是連接最多的事件監聽器到'$ stateChangeStart'事件,這是事件觸發時真正設置權限和公司名稱的事件。 – TSmith
@TSmith yes $ stateChangeStart函數是設置權限的函數。 它被聲明爲app.run函數的底層。 – ghovat