我的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很新,任何其他建议也欢迎。 另外,如果我的理解是错误的,请纠正我。 感谢。
答案 0 :(得分:0)
此线程讨论了动态路由的一些替代方案:
其他替代解决方案是在服务器端呈现路由配置,就像本文中所解释的那样:
http://odetocode.com/blogs/scott/archive/2014/03/24/dynamic-routes-with-angularjs.aspx