0

我的 Web 应用程序有很多视图(模板),并且没有静态模式可以仅从路由参数组成 templateUrl。考虑到更新路由的灵活性,我将路由表存储在 SQL 服务器中,并创建一个 RESTful Web 服务来检索和更新路由模板记录。但是,我发现在配置短语期间无法在 AngularJS 中调用 $http 和 $rootScope。

我了解 .config 发生在 AngularJS 中的 .run 之前。在配置中,我们只能访问常量和提供者。但是由于我使用的是 templateUrl 函数,所以函数体在运行时被调用。我想知道是否有任何方法可以在我的 templateUrl 函数中注入 $http 和 $rootScope ,这将在运行短语中执行......

angular.module('app', ['ngRoute']).config(['$routeProvider', 

        function ($routeProvider) {

            $routeProvider.
                    when('/:param1/:param2/:param3',
                    { templateUrl: function(element){
                      // $http GET routing table from RESTful API
                      // store the table to $rootScope
                      // look up table with param1+param2+param3 as key, get template url 
                      return templateUrlFromTable ;
                    }}).

                    otherwise({redirectTo: '/'});

        }])

我对 AngularJS 很陌生,也欢迎任何其他建议。另外,如果我的理解有误,请纠正我。谢谢。

4

0 回答 0