2017-05-17 13 views
1

他のページでいくつかの問題が発生するため、私のapp.js以外にstateproviderを置くことができるかどうかを知りたいと思います。AngularJSのapp.js以外のStateProvider

app.js

var app = angular.module('myApp', 'ui.router']); 

app.config(function ($stateProvider, $urlRouterProvider) { 
    $stateProvider 
     // route to show our basic form (/form) 
     .state('form', { 
      url: '/form', 
      templateUrl: 'templates/step_Form/form.html?v=' + new Date().getDay() 
    }) 

    // url will be nested (/form/profile) 
    .state('form.upload', { 
     url: '/upload', 
     templateUrl: 'templates/step_Form/form-upload.html?v=' + new Date().getDay() 
    }) 

     // url will be /form/interests 
    .state('form.content', { 
     url: '/content', 
     templateUrl: 'templates/step_Form/form-content.html?v=' + new Date().getDay() 
    }) 

$urlRouterProvider.otherwise('/form/upload'); 
}) 

私のコントローラ

angular.module('myApp').controller('ImportGeneralCtrl', function ($scope, $stateProvider, $urlRouterProvider) { 

//myfunctions 

} 

私は状態プロバイダを使用して、私のHTMLにマルチステップフォームを統合しました。 どうすればapp.jsから状態プロバイダを取得し、コントローラにのみ適用できますか?

+0

通常、コントローラーは状態を持っていて、状態はコントローラーを持つコンポーネントにマップします。 IIRCの場合、 '$ stateProvider'と' $ urlRouterProvider'はプロバイダであるためコントローラには挿入できません。 –

答えて

1

コントローラーで$stateProviderまたは$urlRouterProviderproviders)を使用することはできません。なぜなら、これらはprovidersが構成注入専用に作られているからです。任意のangular.module('myApp').config()で使用できますが、コントローラ内のユーザプロバイダは使用できません。

angular.module('myApp').controller('myController', function ($scope, $state) {} 

この小さなcode snippet shows you how to create a Service, a Factory and a Provider:コントローラであなただけの$statemodules、サービス、工場、例えば)を注入することができます。

+0

どうすれば私の多段フォームをui-routerでapp.jsに設定せずに使うことができますか? –

+0

@VincentDucroquetあなたの問題は何ですか?あなたのルータの設定は 'app.config()'でうまくいくはずです。 – lin

+0

別のページで、私のapp.jsに.configがあると、エラーが発生しました: str.replaceがreplaceAll(toolbar.js?v = 636305309810171550&l = fr&u = 636306206076525625:5)の で機能していません –

関連する問題