首先感谢您的时间。
我遇到了这个问题,而且我不太清楚为什么会这样。
main
.controller('MainSelectsCtrl', function($scope, $rootScope, $stateParams, $state, $http, $ionicPopup, $translate, $ionicHistory, Auth, ajax, Data, sections, utils) {
var filterBarInstance;
_initController = function () {
$rootScope.icon_sections = _searchIcon($ionicHistory.currentStateName().split(".")[1])
if (Auth.isLoggedIn()) {
PARENT = $scope.$parent
}
}
...
_initController();
和
main
.controller('MainSelectsCtrl', function($scope, $rootScope, $stateParams, $state, $http, $ionicPopup, $translate, $ionicHistory, Auth, ajax, Data, sections, utils) {
var filterBarInstance;
_initController = function () {
$rootScope.icon_sections = _searchIcon($ionicHistory.currentStateName().split(".")[1])
if ($scope.isLogged) {
PARENT = $scope.$parent
}
}
....
initController();
如果我使用$ scope.isLogged,PARENT就可以了,我可以稍后访问所需的方法。 如果我使用Auth.isLoggedIn()我不知道为什么,但$ scope。$ parent更改。
这是工厂认证:
angular.module('auth.services', [])
.factory('Auth', function () {
var _user = JSON.parse(window.localStorage['session']);
var setUser = function (session) {
_user = session;
window.localStorage['session'] = JSON.stringify(_user);
}
return {
setUser: setUser,
isLoggedIn: function () {
return _user ? true : false;
},
getUser: function () {
return _user;
},
logout: function () {
window.localStorage.removeItem("session");
_user = null;
}
}
});
非常感谢