2016-05-23 14 views
0

Ich versuche, eckige Google Maps in meiner ES6-Syntax zu arbeiten. In ES5 sieht es dies wie:Eckige Konfiguration es6 Syntax

.config(function(uiGmapGoogleMapApiProvider) { 
    uiGmapGoogleMapApiProvider.configure({ 
    // key: 'your api key', 
    v: '3.20', 
    libraries: 'weather,geometry,visualization' 
}); 
}) 

In es6 ich dies tat, aber ich erhalte, dass „konfigurieren“ ist keine Funktion.

export default function uiGmapGoogleMapApiProvider() { 
uiGmapGoogleMapApiProvider.configure({ 
    // key: 'your api key', 
    v: '3.20', 
    libraries: 'weather,geometry,visualization' 
}); 
} 

Wie würde ich es richtig in es6 schreiben? Vielen Dank!

Antwort

1

Sie müssen Ihre Abhängigkeit injizieren.

angular.module('yourApp') 
    .config(mapConfig); 

mapConfig.$inject = ['uiGmapGoogleMapApiProvider']; 

function mapConfig(uiGmapGoogleMapApiProvider) { 
    uiGmapGoogleMapApiProvider.configure({ 
     // key: 'your api key', 
     v: '3.20', 
     libraries: 'weather,geometry,visualization' 
    }); 
} 

Um 'es6' zu verwenden, denke ich, dass Sie Klassen meinen. Wenn Sie eine Klasse verwenden möchten, verwenden Sie den Konstruktor.

mapConfig.$inject = ['uiGmapGoogleMapApiProvider']; 

export default class mapConfig { 
    constructor(uiGmapGoogleMapApiProvider) { 
     uiGmapGoogleMapApiProvider.configure({ 
      // key: 'your api key', 
      v: '3.20', 
      libraries: 'weather,geometry,visualization' 
     }); 
    } 
} 
+0

Vielen Dank. Aber was, wenn ich schon eine Konfiguration habe? Der Routenanbieter in diesem Fall. – user2952238

+0

Sie können .config an mehreren Stellen aufrufen. Beim komponentenbasierten Design sollte sich jede Komponente selbst konfigurieren. – d3l33t

+0

hm, hat nicht funktioniert. Es besagt, dass $ inject nicht definiert ist. – user2952238

Verwandte Themen