Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ui路由器解析无法与索引页控制器一起使用_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs ui路由器解析无法与索引页控制器一起使用

Angularjs ui路由器解析无法与索引页控制器一起使用,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我想在加载应用程序的第一页之前解析一些值,但它一直告诉我 未知提供者:programClassSummaryProvider我想说,我们真的必须区分UI路由器状态世界和角度本身。此处明确定义的原因(摘自): resolve(发票、本地人、家长、自己) 解析一组电缆。invocable是通过$injector.invoke()调用的函数,可以具有任意数量的依赖项。invocable可以直接返回值,也可以返回$q承诺。如果一个承诺被返回,它将被解析,结果值将被使用。已解决Invocales的依赖关系

我想在加载应用程序的第一页之前解析一些值,但它一直告诉我


未知提供者:programClassSummaryProvider我想说,我们真的必须区分
UI路由器
状态世界和角度本身。此处明确定义的原因(摘自):

resolve(发票、本地人、家长、自己)

解析一组电缆。invocable是通过
$injector.invoke()
调用的函数,可以具有任意数量的依赖项。invocable可以直接返回值,也可以返回
$q
承诺。如果一个承诺被返回,它将被解析,结果值将被使用。已解决Invocales的依赖关系(按此优先顺序)

  • 从指定的局部变量
  • 来自此$resolve调用的另一个invocable
  • 从父调用$resolve(或递归调用)继承的invocable
  • 从该父级的任何祖先(解析)
有,它使用这个index.html

对于州住宅,我们可以使用不同的方法,事实上与上面相同(下面的简化版本)

它的控制器现在可以使用本地人


中检查它,如果在解析发生之前加载控制器,则可能会加载控制器两次(例如,在HTML中使用
ng controller
),您完全正确!!!
$stateProvider
        .state('home', {
          url: '/home',
          controller: 'HomeCtrl',
          controllerAs: 'vm',
          templateUrl: 'index_main.html',
          resolve: {
            programClassSummary: ['GroupDataFactory', function (groupDf) {
              return groupDf.getProgramClassSummary();
            }]
          },
          ncyBreadcrumb: {
            skip: true
          }
        });
angular
    .module('issMccApp')
    .controller('HomeCtrl', homeCtrl);

  homeCtrl.$inject = ['$scope', '$location', '$state', '$auth', 'programClassSummary'];

  /* @ngInject */
  function homeCtrl($scope, $location, $state, $auth, programClassSummary) {

    var vm = this;

    vm.isAuthenticated = isAuthenticated;
    vm.programClassSummary = programClassSummary;

    if (!$auth.isAuthenticated()) {
      $state.go('login');
      return;
    }

    function isAuthenticated() {
      return $auth.isAuthenticated();
    }
  }
 function getProgramClassSummary(showAll) {
      var query = "";
      if (showAll)
        query = APIConfigObj.base_url + '/api/group/infor/programclasssummary?all=1';
      else
        query = APIConfigObj.base_url + '/api/group/infor/programclasssummary';

      return $http.get(query)
        .success(function (result) {
          return result;
        })
        .error(function (err) {
          return err;
        })

    }
<body ng-controller="RootCtrl">

    a summary for a root:
    <pre>{{summary}}</pre>

    <ul>
      <li><a href="#/home">home</a>
      <li><a href="#/other">other</a>
    </ul>

    <div ui-view=""></div>
.controller('RootCtrl', ['$scope', 'GroupDataFactory', function ($scope, groupDf) { 
  $scope.summary = groupDf.getProgramClassSummary();
}])
  .state('home', {
      url: "/home",
      templateUrl: 'tpl.home.html',
      resolve: {
          programClassSummary: ['GroupDataFactory', function (groupDf) {
          return groupDf.getProgramClassSummary();
        }]
      },
      controller: 'HomeCtrl',
  })
.controller('HomeCtrl', ['$scope', 'programClassSummary', function ($scope, summary) { 
  $scope.summaryForHome = summary;
}])