如何在AngularJS中使用$resource在配置(或运行?)期间配置$stateProvider、$urlRouterProvider
我想根据从JSON资源读取的一些配置“动态”设置一个角度UI路由器$urlRouterProvider$stateProvider。我试过:如何在AngularJS中使用$resource在配置(或运行?)期间配置$stateProvider、$urlRouterProvider,angularjs,angular-ui,angular-ui-router,Angularjs,Angular Ui,Angular Ui Router,我想根据从JSON资源读取的一些配置“动态”设置一个角度UI路由器$urlRouterProvider$stateProvider。我试过: .config(function ($stateProvider, $urlRouterProvider, $resource) { 但这不起作用(“未捕获错误:未知提供程序:$resource from mui.jsangularadressbookapp”),因为(我理解)“您只能将提供程序(而不是实例)注入配置块”。于是我试着: .run(func
.config(function ($stateProvider, $urlRouterProvider, $resource) {
但这不起作用(“未捕获错误:未知提供程序:$resource from mui.jsangularadressbookapp”),因为(我理解)“您只能将提供程序(而不是实例)注入配置块”。于是我试着:
.run(function ($stateProvider, $urlRouterProvider, $resource) {
但这也不行(“未捕获错误:未知提供程序:$stateProviderProvider我还没有完整的答案,但已经设法在配置时访问ui路由器。主要归功于另一个github问题报告员我关于如何在运行时访问配置的要点也在线程中 此时您只能添加路由,如果您多次尝试添加路由,它将抛出一个错误。很抱歉使用CoffeeScript。目前我仍在寻找异步加载路由的方法
angular.module('app').provider 'RouteConfig',
['$stateProvider', ($stateProvider) ->
# this will configure the routes from the received json
# using $stateProvider.state() like in app.config
configurator = ($http) ->
console.log $stateProvider
updateRoutes: ->
configService.get().then (conf) ->
# add routes here from 'conf'
@$get = ['configService', (configService, $http) ->
new configurator(configService, $http)
]
return
]
实际上,这可能是Angular UI Router当前的一个限制…注意:(我刚刚遇到了这个项目:它似乎允许运行时路由配置:“允许运行时编辑配置”和“支持通过AJAX从服务器延迟加载/更新定义”