Javascript Angularjs调用工厂更改$scope

Javascript Angularjs调用工厂更改$scope,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,首先感谢您抽出时间 我有这个问题,我真的不知道为什么 main .controller('MainSelectsCtrl', function($scope, $rootScope, $stateParams, $state, $http, $ionicPopup, $translate, $ionicHistory, Auth, ajax, Data, sections, utils) { var filterBarInstance; _initController = f

首先感谢您抽出时间

我有这个问题,我真的不知道为什么

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

如果我使用$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;
      }
   }
});

非常感谢

我最大的问题是:为什么要访问父范围?这是一个很大的禁忌。我真的不清楚你在问什么,或者父级更改的实际意思是什么。问题是,我需要调用父级视图中声明的方法,如果我使用$scope.isLogged,它可以工作,我可以执行它,如果我使用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;
      }
   }
});