0

アプリのある状態から別の状態に移行しようとすると、エラーが発生します。

私はすべての状態を定義したインデックス ファイルを持っています。

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

4

1 に答える 1

1

angular.configのすべての親状態を記述しましmyApp.dashboard.appArea.moduleTestたか? そうでない場合、それが問題になる可能性があります。myApp.dashboard.appArea.moduleTest.wizards

例:
wizards は、myApp の子である dashboard の子である appArea の子である moduleTest の子です。たとえ何もしないかもしれないとしても、最初にこれらすべての親状態を宣言する必要があります。

ui-state の詳細:
https://github.com/angular-ui/ui-router/wiki/Nested-States-and-Nested-Views

于 2016-08-02T12:11:10.013 に答える