StateProvider除了AngularJS中的app.js之外的其他地方

时间:2017-05-17 09:48:29

标签: angularjs url

我想知道我是否可以将stateprovider放在除app.js之外的其他地方,因为它会在其他页面中引起一些问题。

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中取出状态提供程序,只将其应用到我的控制器上?

1 个答案:

答案 0 :(得分:1)

您无法在控制器中使用$stateProvider$urlRouterProviderproviders),因为那些providers仅用于配置注入。它可以在您想要的任何angular.module('myApp').config()中使用,但您不能在控制器中使用提供者。在控制器中,您只能注入$statemodules,服务,工厂,例如:)

angular.module('myApp').controller('myController', function ($scope, $state) {}

这个小code snippet shows you how to create a Service, a Factory and a Provider