【发布时间】:2015-08-07 19:17:05
【问题描述】:
在我的教程项目中使用$state 服务时遇到一些问题。
这是我的模块和配置定义:
(function () {
"use strict";
angular.module("gameManagement", ["ui.router", "ngAnimate", "ngResource"])
.config(["$stateProvider", "$urlRouterProvider","$state", function ($stateProvider, $urlRouterPorvider,$state) {
$urlRouterPorvider.otherwise("/game/MultiStepForm/step1");
$urlRouterProvider.otherwise("/game/Home");
$stateProvider
.state("Home", {
url: "/game/Home",
templateUrl: "/app/game/GameView.html",
controller: "GameController",
controllerAs: "vm"
});
$stateProvider
.state("Log", {
url: "/Game/Log",
templateUrl: "/app/Log/GameLogView.html",
controller: "GameLogController",
controllerAs: "vm"
onEnter: function () {
$state.go("MultiStepForm");
}
});
$stateProvider
.state("MultiStepForm.view", {
url: "/Game/MultiStepFormView",
templateUrl: "/app/MultiStepForm/MultiStepFormView.html",
controller: "MultiStepFormViewController",
controllerAs: "MultiStepViewLogic"
})
$stateProvider
.state("MultiStepForm.Edit", {
url: "/Game/MultiStepFormEdit",
templateUrl: "/app/MultiStepFormEdit/MultiStepForm.html",
controller: "MultiStepFormEditController",
controllerAs: "MultiStepEditLogic"
})
}]);
})();
我想使用这一行:
$state.go();
为此,我将 $state 服务添加到引用,但是,当我添加到
引用$state 服务我开始得到这个错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module sensorManagement due to:
Error: [$injector:unpr] Unknown provider: $state
http://errors.angularjs.org/1.4.2/$injector/unpr?p0=%24state
...
知道为什么会出现上述错误吗?我错过了什么?
【问题讨论】:
-
正如@Pankaj Parkar 在下面的答案中提到的
$state在config阶段将不可用,但是onEnter/onExit可以访问所有已解决的依赖项。至此,您是否尝试在onEnter中使用$state并期望注入.config来处理此分辨率? -
@Matt 所以我不需要注入 如果我使用 onEnter/onExit ?
-
这将取决于上下文;您仍然必须注入
$state服务,但您必须在使用它的区域执行此操作。例如,如果您将$state服务解析为"Log"状态,那么您在该状态下的onEnter/onExit将可以访问它,并且上面的代码应该符合您的预期。跨度>
标签: angularjs routing angular-ui-router angularjs-routing angular-services