AngularJS 不调用控制器

AngualrJS not invoking the controller

我的状态state.js

(function() {
    'use strict';

    angular.module('app').config(stateConfig);

    stateConfig.$inject = [ '$stateProvider' ];

    function stateConfig($stateProvider) {
        $stateProvider.state('bmc', {
          parent : 'entity',
          url : '/bmc',
          data : {
            authorities : [ 'ROLE_USER', 'ROLE_ADMIN' ],
          },
          views : {
              'content@' : {
                templateUrl : 'bmc.html',
                controller : 'BmcController',
                controllerAs : 'vm'
              }
          }
        }).state('list', {
          parent : 'bmc',
          url : '/list/:routeId/:entity',
          data : {
              authorities : [ 'ROLE_ADMIN', 'ROLE_USER' ],
          },
          views : {
              'fieldContent@' : {
                templateUrl : 'list.html',
                controller : 'ListController',
                controllerAs : 'vm'
              }
          },
          resolve : {
            loadMyFiles : function($ocLazyLoad) {
                return $ocLazyLoad.load({
                  name : 'list',
                  files : [ 'crud.service.js', 'list.controller.js' ]
                })
            },
            translatePartialLoader : [ '$translate', '$translatePartialLoader', function($translate, $translatePartialLoader) {

                return $translate.refresh();
            } ]
          }
        });
    }
})();

list.controller.js

(function() {
    'use strict';

    angular.module('app').controller('ListController', ListController);

    ListController.$inject = [ '$scope', '$state', '$stateParams' ];

    function ListController($scope, $state, $stateParams) {
        var vm = this;

        console.log( $stateParams.entity );
    console.log( $stateParams.routeId );
    }
})();

当我单击由 HTML code 生成的 url http://localhost:8080/#/bmc/list/xyz/abc 时,没有任何反应。我不确定问题出在哪里,因为我期待我的 ListController 会在点击时被调用。

bmc.html

<a ui-sref="list({routeId: node.name, entity: entity.name})">{{entity.name}} </a>

可能 resolve 值之一失败。您应该注意 $rootScope 中的 $stateChangeError 以确保您处理这些情况。请参阅 ui-路由器文档:

$stateChangeError - fired when an error occurs during transition. It's important to note that if you have any errors in your resolve functions (javascript errors, non-existent services, etc) they will not throw traditionally. You must listen for this $stateChangeError event to catch ALL errors. Use event.preventDefault() to prevent the $UrlRouter from reverting the URL to the previous valid location (in case of a URL navigation).

$rootScope.$on('$stateChangeError', 
 function(event, toState, toParams, fromState, fromParams, error){ ...
})