我有这个角度的js代码:
app.js
$stateProvider.state('home', {
url: '/',
component: 'homeComponent',
params: {
selectedFilter: undefined
},
resolve: {
isAdOps: function (authorizationService) {
var ldapGroup = authorizationService.getLdapGroup();
//.then(
// function(ldapGroup) { return ldapGroup === 'AdOps';},
// function () { return true;}
// );
var isAdOps = ldapGroup === 'AdOps';
console.log("isAdOps ?? "+isAdOps)
return isAdOps;
}
}
})
和这个authorizationService:
var getLdapGroup = function () {
var deferred = $q.defer();
if (self.isInit) {
deferred.resolve(self.isAdOps);
}
else {
$http.get('api/Voices/getLdapGroup').then(
function successCallback(response) {
self.isAdOps = response.data === 'AdOps';
deferred.resolve(response.data);
}, function errorCallback(response) {
var error = !response.data ? "empty_error": response.data.errorMsg;
console.log(error);
self.isAdOps = true;
deferred.reject("data: "+response.data+" code:"+response.status+" "+response.statusText+", please look at the web console");
});
}
return deferred.promise;
};
和这个家庭组件:
(function (app) {
app.component('homeComponent', {
templateUrl: 'partials/home-partial.html',
bindings: {
isAdOps: '<'
},
controller: ['$scope', '$state', function ($scope, $state) {
var self = this;
console.log("self.isAdOps = " + self.isAdOps);
self.isFullList = false;
即使response.data === 'AdOps'
主页组件绑定到isAdOps = false
我应该如何更改代码?
答案 0 :(得分:1)
您必须将依赖项添加到控制器依赖项中的已解析。
controller: ['$scope', '$state', 'isAdOps', function ($scope, $state, isAdOps) {
...
}
答案 1 :(得分:1)
这解决了我的问题:
resolve: {
isAdOps: function (authorizationService) {
return authorizationService.getLdapGroup();
}
}