2016-04-13 10 views
2

私のアプリケーションをES6構文を使用するように変換しようとしています。私のメインモジュールには設定と呼び出しがあります。Angular .config()とrun()のES6の構文

私は私が何を教えてください

..

import * as angular from 'angular'; 
import {config,run} from './my-config'; 
import MyAppController from './my-app-controller'; 

module.exports = angular.module("my-app", []) 

    .config(config) 

    .run(run) 

    .controller('myAppController', MyAppController) 

にそれらを変更し、ここで私の-config.jsの

import MyService from './my-service'; 
export function config($compileProvider, $logProvider, localStorageServiceProvider,$stateProvider, $urlRouterProvider){ 

    console.log('.config() : START '); 
    $compileProvider.debugInfoEnabled(true); 

    $logProvider.debugEnabled(true); 

    localStorageServiceProvider.setPrefix('myapp'); 
    localStorageServiceProvider.setNotify(true, true); 

    $stateProvider.state('home', { 
     url: '/', 
     views: { 
      'main': { 
       controller: 'myAppCtrl', 
       templateUrl: 'app/home.tpl.html' 
      } 
     } 
    }); 
    // handle routes here 
    $urlRouterProvider.otherwise('/'); 
} 
config.$inject =['$compileProvider', '$logProvider', 'localStorageServiceProvider','$stateProvider', '$urlRouterProvider']; 



export function run(MyService) { 
    console.log('.run() : '); 
    MyService.start(); 
} 

run.$inject=['MyService']; 

され、設定、実行機能が呼び出さ取得されていません私は行方不明です

ありがとう

+0

追加する必要がありますAngular 1.xの正規版は何もエクスポートしないので、 'import *は 'angular'から角度を付ける;' can not wo rk。 – zeroflagL

+0

私はmodule.exportsをexport defaultに置き換えました。それはエラーを投げていません。 (以前は、古いバージョンのノードとnpmを使用していましたが、エクスポートのデフォルトを使用したときにエラーが発生したかどうかはわかりません)。 –

答えて

5

いくつかのことは私がお勧め:

import angular from 'angular'; 

export default angular 
    .module('app', [ 
    //list of your modules 
    ]) 
    .config(config) 
    .run(run) 
    .name; 

コンフィグは、我々が使用します。

export default function config(/* injectables here */) { 
    //Your code 
} 

実行して、私たちが使用します。

export default function run(/* injectables here */) { 
/* @ngInject */ 
//Your code 
} 

あなたは注射剤を使用しない場合があります、私たちが行うように、または使用/ * @ngInject */

+0

これはどのようにして問題を解決しますか? Angular 1.xはES6ではないので、どのように '角度からインポート角度' ';'は、ボックスの外で動作するはずですか? 'config'と' run'のインポートはどこにありますか? 'my-config.js'を2つに分割するのはなぜですか?モジュール名のエクスポートのポイントは何ですか? – zeroflagL

+0

私はconfを2つのファイルに分割しました。以前は、同じファイルに2つの関数を置くと、 "エクスポートのデフォルト"が許可されていなかったため、それはありませんでした。今私は2つのファイルに分割し、それぞれのエクスポートのデフォルトを持っています。どのようにこれまでのすべての後に私はまだ実行または設定メソッドがすべて呼び出されて表示されません! –

+0

私の問題は、$ injectが動作していないようです。 run()メソッドやconfig()メソッドに何も注入されていない状態で、run()メソッドが呼び出されます。 –

1

ベロー私は例を書いて、ES6とAngularjsはConfigの構文です。

我々は、ブートストラップモジュールが命名したとする:mainので、私たちは、このモジュールに

main.js

import angular from 'angular'; 
import ngRoute from 'angular-route'; 
import MainRoute from './main.route';//import config rout whuch I added in //other js file 
    let mainModule = 
     angular.module('mainApp', [ 
       'ngRoute', 
       homeModule.name, 
      ] 

     ) 
     .config(MainRoute); 

    export default mainModule; 

main.route.js

export default function routeConfig($routeProvider) { 

      $routeProvider 
       .when('/', { 
        templateUrl: 'src/content.components/home/home.tpl.html', 
        controller: 'HomeController as vm' 
       }); 
     } 

    routeConfig.$inject = ["$routeProvider"];  
関連する問題