У меня есть некоторые проблемы с использованием службы $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
service Я начну эту ошибку:
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' имеет доступ ко всем разрешенным зависимостям. К этому моменту вы пытаетесь использовать '$ state' внутри' onEnter' и ожидаете инъекции в '.config' для обработки этого разрешения? – Matt
@Matt, поэтому мне не нужна инъекция Если я использую onEnter/onExit? – Michael
Это будет зависеть от контекста; вам придется вводить службу '$ state', но вам придется делать это в той области, в которой вы ее используете. Например, если вы разрешите службу '$ state' в том, что выглядит как' 'Log '', тогда ваш 'onEnter' /' onExit' для этого состояния будет иметь к нему доступ, а код выше должен делать то, что вы ожидаете , – Matt