2016-08-02 18 views
0

Ich erhalte einen Fehler, wenn ich versuche, von einem Zustand in meiner App zu einem anderen zu wechseln.Status kann nicht aufgelöst werden angularjs

Ich habe in einer Indexdatei alle meine Zustände definiert.

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: { 
     // 
     // } 
     }) 
    ) 
}) 

Wenn ich im Zustand "myApp.dashboard.appArea.moduleTest" Fron ModuleTestCtrl Ich versuche, in den Zustand „myApp.dashboard.appArea.moduleTest.wizards zu gehen "Aber ich bekomme den Fehler" konnte den Zustand nicht auflösen ". Wie kann ich dieses Konfigurationsmodul in meinen Controller importieren, um zu diesem Status zu navigieren? .

/*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 $ inject = [ '$ uibModalInstance', 'Api', 'diagnosticsRaw', 'myService', '$ Zustand']; module.exports = ModuleTestCtrl;

Antwort

1

Haben Sie alle übergeordneten Status von myApp.dashboard.appArea.moduleTest und myApp.dashboard.appArea.moduleTest.wizards in Ihrer angular.config beschrieben, wenn das nicht das Problem sein könnte.

Beispiel:
Assistenten ein Kind von moduleTest ist, die ein Kind von appArea ist, die ein Kind von Armaturenbrett, die ein Kind von myApp ist, Sie erhalten den Punkt. Sie müssen zuerst alle diese übergeordneten Zustände deklariert haben, obwohl sie möglicherweise nichts tun.

Mehr über ui-Zustand an:
https://github.com/angular-ui/ui-router/wiki/Nested-States-and-Nested-Views

+0

Dank für Ihre Antwort. Ich habe alle übergeordnete Route in meiner App in verschiedenen Ordnern und Dateien definiert. Vielleicht habe ich eine Spritze oder eine Spritze verpasst? Ich versuche auf diese Weise zu sehen – acostela

+1

Endlich habe ich es gelöst. Alle übergeordneten Routen wurden definiert, aber einer der übergeordneten Status wurde falsch in mein inneres Skript importiert. Als Ergebnis wurden verschachtelte Zustände nicht erstellt. In der Antwort ist diese Antwort richtig, also werde ich sie als gelöst markieren. Vielen Dank! – acostela