【问题标题】:Extending ui-router $stateProvider扩展 ui-router $stateProvider
【发布时间】:2014-12-14 16:06:31
【问题描述】:

我正在尝试在 Angular 应用程序的不同部分从 ui-router 扩展 $stateProvider。我认为创建主应用程序然后向其添加模块应该可以工作 - 但事实并非如此。

加载时我得到Error: [$injector:modulerr]

var app = angular.module('app', [
  'ui.router',
  'app.MyModule'
]);

// State provider from original app.js
app.config(function($stateProvider, $urlRouterProvider){

  $urlRouterProvider.otherwise('/');

  $stateProvider

    // INDEX
    .state('index', {
      url: '/',
      templateUrl: '/templates/index.tmpl.html'
    })

});


// States for MyModule -- these are concatenated together by grunt  
angular.module('app.MyModule', ['ui.router']).config(
  ['$stateProvider'], function($stateProvider){

  $stateProvider

    .state('MyModuleStateOne',{
      url: '/MyModuleStateOneURL',
      templateUrl: '/MyModule/MyModule.tmpl.html'
    })

});

是否可以扩展 $stateProvider 以便将文件连接在一起?我宁愿不在一个文件中定义每个状态?

【问题讨论】:

  • 您找到解决问题的方法了吗?
  • 错过了正确的未决答案。没有将它作为数组传递。谢谢你提醒我:)

标签: angularjs dependency-injection angular-ui-router


【解决方案1】:

上面的代码有错误,应该是

angular.module('app.MyModule', ['ui.router'])
.config(['$stateProvider', function($stateProvider){
    $stateProvider
    .state('MyModuleStateOne',{
        url: '/MyModuleStateOneURL',
        templateUrl: '/MyModule/MyModule.tmpl.html'
    });
}]);

参数应该作为数组传递给 angular 的 config 方法。 看看这个 plunker。我使用了您提供的相同代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-02
    • 2017-09-03
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多