我想知道我是否可以将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中取出状态提供程序,只将其应用到我的控制器上?
答案 0 :(得分:1)
您无法在控制器中使用$stateProvider
或$urlRouterProvider
(providers),因为那些providers仅用于配置注入。它可以在您想要的任何angular.module('myApp').config()
中使用,但您不能在控制器中使用提供者。在控制器中,您只能注入$state
(modules,服务,工厂,例如:)
angular.module('myApp').controller('myController', function ($scope, $state) {}
这个小code snippet shows you how to create a Service, a Factory and a Provider。