2016-04-13 15 views
2

için ES6 sözdizimi.Ben ES6 Syntax'i kullanmak Uygulamamı dönüştürmek çalışıyorum ve benim ana modülde i yapılandırma ve çalıştırma çağırmaları sahip Açısal .config'dir() ve çalıştırma()

Ben

bana bildirin .. my-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']; 

Ve yapılandırma ve çağrılan sakın çalıştırmak fonksiyonlar burada

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) 

onları değiştirdi ve hangi i

Teşekkür

eksik 10
+0

Angular 1.x'in normal versiyonu hiçbir şeyi dışa aktarmaz, yani 'açısaldan açısal olarak içe aktarma'; rk. – zeroflagL

+0

i export.exports ile export varsayılan değiştirildi ve herhangi bir Hata atmıyor. (Önceden düğümün ve npm'nin eski sürümünü kullanıyordum ve dışa aktarma varsayılanını kullandığımda aldığım hataya neden olup olmadığından emin değilim). –

cevap

5

birkaç şey öneriyorum:

import angular from 'angular'; 

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

Yapılandırma Kullandığımız:

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

Çalıştır Kullandığımız:

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

Sen enjektabl kullanmıyor olabilir bizim gibi, ya da kullanım/* @ngInject */

+0

Bu sorun nasıl çözülür? Eğik 1.x ES6 değil, bu yüzden nasıl 'ithal 'açısal' dan açısal olduğu;' kutunun dışında çalışmak gerekiyordu? 'Config' ve 'run' için ithalatlar nerede? Neden my-config.js'yi ikiye bölmeliyiz? Modülün adını ihraç etme amacı nedir? – zeroflagL

+0

Conf'ı iki dosyaya böldüm. Daha önce, aynı dosyaya iki işlev koyarsam izin vermediğinden "dışa aktarma varsayılan" değildim. Şimdi onları iki dosyaya böldüm ve her birinin ihracat varsayılanı var. Ne kadar her şeyden sonra hala hiç çağrılan çalıştırma veya yapılandırma yöntemleri görmüyorum! –

+0

Benim Sorunum, $ inject çalışmıyor gibi görünüyor. Arama, run() yönteminin run() veya config() yöntemlerine hiçbir şekilde nasıl enjekte edilmediğini çalıştırma() yöntemine gidiyor. –

1

Körük ben bir örnek yazacağım ES6 ve yazmayı nasıl açıklamak Angularjs Yapılandırma'nın sözdizimi.

bizim önyükleme modülü adlı varsayalım: main yüzden bu modülünü

main.js eklemem gerekiyor

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"];  
İlgili konular