在AngularJS中在运行时注册控制器不起作用

时间:2015-04-21 09:54:53

标签: javascript angularjs

在我的MVC项目中,我使用angularjs来生成单页面应用程序。服务器生成的每个视图都按角度加载到ng-view,也许它们内部有一些ng-controller。所以在它们可以加载之前我已经处理并延迟了视图分辨率,然后在运行时动态注册一些控制器。打击代码描述了这种情况

在我的页面顶部我有这个:

app.config(function ($controllerProvider) {
                // i hold app.controllerProvider to call later.
                app.controllerProvider = $controllerProvider;
    }

var routes={'URL1' , 'URL2' , 'URL3' , ... }
    app.config(function ($routeProvider) {
         routes.forEach(function (route) {
                    $routeProvider.when(route, {
                        templateUrl: route
                        ,
                        resolve: {
                            deps: PageResolver
                        }
                    });
                });
     }

和解析器:

function PageResolver($q, $rootScope) {
   var deferred = $q.defer();


   app.controllerProvider.register('MyCTRL', [
     '$scope',
     function ($scope) {
       // ... some codes
   }]);


   deferred.resolve();
   return deferred.promise;
    }

这些代码运行良好,但我的问题是app.controllerProvider.register不会一直影响!这意味着我无法动态注册控制器?!或者出了什么问题?

0 个答案:

没有答案