Angularjs调用工厂改变$ scope

时间:2015-09-23 15:37:51

标签: javascript angularjs ionic-framework

首先感谢您的时间。

我遇到了这个问题,而且我不太清楚为什么会这样。

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;
      }
   }
});

非常感谢

0 个答案:

没有答案