Angular ui-router和模块冲突

时间:2016-03-12 17:11:05

标签: angularjs angular-ui-router

我有不同的模块。如果用户尝试查看个人资料页面,他将被重定向到索引页面以进行登录。 app.profile.routes具有Auth功能,但它也适用于app.index.routes,为什么?是与$rootscope有关还是我的模块依赖设置错了?

例如,如果我尝试查看app.index.routes中定义的网址,系统会要求我登录。

app.feed.routesapp.feed的路径文件,app.index.routesapp.index的路径文件。

我有一个主index.html(在那里定义了ng-app =“app”)我将每个.js文件合并到一个名为index.js的文件中

router.all('/*', function(req, res, next) {
  res.sendFile(path.resolve('index.html'));
});

这是我的主要app.js。

angular.module('app', [
  'ngMaterial',
  'ngMessages',
  'hm.readmore',
  'ng-fx',
  'ngAnimate',
  'ui.router',
  'app.feed',
  'app.profile',
  'app.index'
]);

angular.module('app.feed', ['app.feed.routes']);

angular.module('app.feed.routes', []);

angular.module('app.profile', ['app.profile.routes']);

angular.module('app.profile.routes', []);

angular.module('app.index', ['app.index.routes']);

angular.module('app.index.routes', []);

轮廓routes.js

angular.module('app.profile.routes')
 .run(['$rootScope', '$state', '$stateParams', 'Auth',
  function($rootScope, $state, $stateParams, Auth) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;

    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState) {
      var val2 = function() {
        return Auth.isLoggedIn().then(function(rt) {
          if (rt.data.length) {
            console.log("text " + rt.data.length);
          }
        }).catch(function(err) {
          console.log("please sign in");
          var shouldLogin = toState.data !== undefined && toState.data.requireLogin;
          console.log(shouldLogin);
          $state.go('login');
          event.preventDefault();
        });
      };
      val2();
    });
  }
])

0 个答案:

没有答案