我的 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 很陌生,也欢迎任何其他建议。另外,如果我的理解有误,请纠正我。谢谢。