2016-07-22 4 views
0

Ich versuche, eine JS-Variable als Konstante in meine Anwendung zu importieren, da ich keine konventionellen JSON-Methoden verwenden kann.Import Javascript Variable als konstant eckig

Ich habe diesen Code:

//english.js 
var english = {"title-1": "Some text"}; 
export { english as default }; 

Und es so bin importieren:

import { english } from '../path/english.js'; 

angular.module('myApp', ['ui.router']) 

    .constant('english', english) 

Und dann versuchen, es wie folgt zu verwenden:

export class AController { 
    constructor($scope, english) { 
    'ngInject'; 
    this.data = english; //undefined 
    .... 

Was soll ich tun falsch hier? Englisch ist undefiniert.

Antwort

1

Wenn Sie Englisch wollen die Standard Export zu sein, müssen Sie die default Schlüsselwort und sollte folgende Struktur haben:

//english.js 
var english = {"title-1": "Some text"}; 
export default english; 

und Sie würden es importieren ohne die {} wie so:

import english from '../path/english'; 

english zu haben, einfach eine der Export sein Ed-Elemente, die Sie aus dem Schlüsselwort default herauslassen würden.

//english.js 
export var english = {"title-1": "Some text"}; 

und es zu importieren, werden die {} erforderlich.

import {english} from '../path/english'; 

Also in Ihrem Fall entweder entfernen Sie das default Schlüsselwort, wenn Sie es exportieren, oder die {} entfernen, wenn Sie es importieren.

import und export Dokumentation von MDN.

2

Ich glaube, Sie brauchen nicht default

Versuchen export {english}; statt. Manchmal, wenn ich nicht sicher bin, was ES6 tut, versuche ich Babel REPL zu verwenden, was mir sehr hilft zu verstehen, was ich tat.

0

Ihr Export des Objekts english ist ungültig, da Sie den benannten Export verwenden. Sie können dies verbessern, indem Sie:

export const english = {"copy":"example"};