2016-08-02 2 views
0

Я получаю сообщение об ошибке при попытке перейти от одного состояния в приложении к другому.не может решить состояние angularjs

У меня есть индексный файл, определяющий все мои состояния.

index.js

var MyModule = angular.module('myApp.ui.moduleTest', [ 
    'ui.router' 
]) 
.config(function($stateProvider, modalStateProvider){ 
    $stateProvider 

    .state('myApp.dashboard.appArea.moduleTest', 
     modalStateProvider.create({ 
     animation: true, 
     name: 'myApp.dashboard.appArea.moduleTest', 
     url: 'apps/moduleTest', 
     controllerAs: 'moduleTestCtrl', 
     controller: 'ModuleTestCtrl', 
     windowClass: 'semi-modal semi-modal--huge', 
     templateUrl: function() { 
      return 'app/ui/apps/moduleTest/widget.html'; 
     }, 
     resolve: { 
      //Some function to retrieve data 
     } 
     }) 
    ) 
    .state('myApp.dashboard.appArea.moduleTest.wizards', 
     modalStateProvider.create({ 
     animation: true, 
     name: 'myApp.dashboard.appArea.moduleTest.wizards', 
     url: 'apps/moduleTest/runWizard', 
     controllerAs: 'moduleTestWizardCtrl', 
     controller: 'ModuleTestWizardCtrl', 
     templateUrl: function(){ 
      return 'app/ui/apps/moduleTest/wizard.html'; 
     } 
     // resolve: { 
     // 
     // } 
     }) 
    ) 
}) 

Когда я нахожусь в состоянии "myApp.dashboard.appArea.moduleTest" Фрон ModuleTestCtrl Я пытаюсь перейти в состояние «myApp.dashboard.appArea.moduleTest.wizards «Но я получаю сообщение об ошибке» не смог разрешить состояние ». Как импортировать этот конфигурационный модуль внутри моего контроллера, чтобы перейти к этому состоянию? .

/*jslint node: true */ 
'use strict'; 

var angular = require('angular'); 

function ModuleTestCtrl($uibModalInstance, Api, diagnosticsRaw, myService, $state) { 

    this.$uibModalInstance = $uibModalInstance; 
    this.Api = Api; 
    this.dataRaw = diagnosticsRaw; 

    this.parserData = function(indexes) { 
     //Some app logic irrelevant 
    } 

    myService.setPropertyToRun(this.dataRaw); 
    myService.setIsPropertyToRun(true); 

$state.go('myApp.dashboard.appArea.moduleTest.wizards'); //THIS IS WHERE I HAVE MY PROBLEM 

    }; 
} 

ModuleTestCtrl $ инъекционные = [ '$ uibModalInstance', 'Api', 'diagnosticsRaw', 'MYSERVICE', '$ состояние']; module.exports = ModuleTestCtrl;

ответ

1

Вы описали все родительские состояния myApp.dashboard.appArea.moduleTest и myApp.dashboard.appArea.moduleTest.wizards в вашем файле angle.config, если это не проблема.

Пример:
wizards - дочерний модуль moduleTest, который является дочерним элементом appArea, который является дочерним элементом панели управления, который является дочерним элементом myApp, вы получаете точку. Сначала вам нужно объявить все эти родительские состояния, даже если они могут ничего не делать.

Подробнее о Ui-состоянии по адресу:
https://github.com/angular-ui/ui-router/wiki/Nested-States-and-Nested-Views

+0

спасибо за ваш ответ. У меня есть все родительский маршрут, определенный в моем приложении в разных папках и файлах. Может, я пропустил требуемую или инъекцию? Я пытаюсь выглядеть таким образом. – acostela

+1

Наконец-то я решил. Все родительские маршруты были определены, но одно из родительских состояний было неправильно импортировано в мой внутренний скрипт. В результате вложенные состояния не были созданы. В этом случае этот ответ правильный, поэтому я буду отмечать его как разрешенный. Спасибо! – acostela

Смежные вопросы