AngularJS中app.js以外的其他位置的StateProvider

AngularJS中app.js以外的其他位置的StateProvider,angularjs,url,Angularjs,Url,我想知道我是否可以在app.js以外的地方放置stateprovider,因为它会在其他页面中给我带来一些问题 app.js var app = angular.module('myApp', 'ui.router']); app.config(function ($stateProvider, $urlRouterProvider) { $stateProvider // route to show our basic form (/form) .st

我想知道我是否可以在app.js以外的地方放置stateprovider,因为它会在其他页面中给我带来一些问题

app.js

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

app.config(function ($stateProvider, $urlRouterProvider) {
    $stateProvider
        // route to show our basic form (/form)
        .state('form', {
            url: '/form',
            templateUrl: 'templates/step_Form/form.html?v=' + new Date().getDay()
    })

    // url will be nested (/form/profile)
    .state('form.upload', {
        url: '/upload',
        templateUrl: 'templates/step_Form/form-upload.html?v=' + new Date().getDay()
    })

        // url will be /form/interests
    .state('form.content', {
        url: '/content',
        templateUrl: 'templates/step_Form/form-content.html?v=' + new Date().getDay()
    })

 $urlRouterProvider.otherwise('/form/upload');
})
我的控制器

angular.module('myApp').controller('ImportGeneralCtrl', function ($scope, $stateProvider, $urlRouterProvider) {

//myfunctions

}
我使用状态提供程序在HTML中集成了一个多步骤表单。
我怎样才能从app.js中取出状态提供程序,只在我的控制器上应用它?

您不能在控制器中使用
$stateProvider
$urlRouterProvider
(),因为它们只是为配置注入而设计的。它可以在您想要的任何
angular.module('myApp').config()中使用,但不能在控制器中使用用户提供程序。在控制器中,您只能注入
$state
(、服务、工厂等):


这一点。

通常,控制器会带有状态,或者状态会映射到具有控制器的组件。IIRC,你不能将
$stateProvider
$urlRouterProvider
注入到你的控制器中,因为它们是提供者。那么,如果不将配置放在app.js中,我如何在ui路由器中使用我的多步骤表单呢?@VincentDucroquet你到底有什么问题?在另一个页面上,当我在app.js中有.config时,我有一个错误:str.replace根本不是replace函数(toolbar.js?v=636305309810171550&l=fr&u=636306206076525625:5),我没有这个错误anymore@VincentDucroquet你能为你的问题提出一个新的问题,并提供所有材料来重现你的问题吗?我想,“AngularJS中app.js以外的其他地方的StateProvider”这个问题已经解决了。请把新问题链接到这里,我会帮你的。请别忘了标出正确的答案。
angular.module('myApp').controller('myController', function ($scope, $state) {}