2016-08-02 98 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',阿比', 'diagnosticsRaw', '爲myService', '$狀態']; module.exports = ModuleTestCtrl;

回答

1

你是否在你的angular.config中描述了myApp.dashboard.appArea.moduleTestmyApp.dashboard.appArea.moduleTest.wizards的所有父狀態,如果不是這可能是問題。

示例:
嚮導是moduleTest的子項,它是appArea的子項,它是myApp子項的儀表板的子項,您可以獲得該點。你首先需要宣佈所有這些父母狀態,即使他們可能什麼都不做。

更多關於UI的狀態下:
https://github.com/angular-ui/ui-router/wiki/Nested-States-and-Nested-Views

+0

感謝您的答覆。我在我的應用中定義了不同文件夾和文件中的所有父路由。也許我錯過了需要或注射?我試圖以這種方式看待 – acostela

+1

最後我解決了它。所有父路由都已定義,但其中一個父狀態未正確導入到我的內部腳本中。因爲結果嵌套狀態沒有創建。在現實中,這個答案是正確的,所以我會將它標記爲已解決。謝謝! – acostela