2016-04-01 18 views
1

Bir es5'i bir es6 modülüne dönüştürme görevim var.Tekil bir modülde açısal 1.x ve es6 çoklu sabitler

ES6 için bir açısal modülde birden fazla sabit varsa, bir açısal sabit modülü nasıl dışa aktarır/içe aktarır?

E.g. constants.js

export default angular.module('myConstants', []) 
    .constant('foo', {result: 'bar'}) 
    .constant('blah', {result: 'bar'}); 

service.js

import foo from './constants'; 
import blah from './constants'; // Tried this. This won't work 

mu ben ayrı modüller halinde benim sabitleri bölmek zorunda demek? Yoksa const anahtar sözcüğünü kullanarak bunları ES6 sabitlerine dönüştürmeliyim? WebPack ve babel yükleyici

P.S. kullanılarak

P.p.s Çalışma kodunu yapıştıramayacağım için psuedo kodunu kullanmalıyım.

+0

Bu dışa aktarma ifadesi bir sözdizimi hatasıdır. İhracat varsayılanını kullanmak mı istediniz? – Bergi

+1

ES6 modülleriniz olduğunda neden açısal modülleri kullanırsınız? – Bergi

+0

@Bergi evet teşekkür ederim. Onu güncelledim. – chrisjlee

cevap

3

Açısal constant hizmeti, yapılandırma aşamasında kullanılabilen ve modül sabitlerini saklamanın önerilen yoludur (bu nedenle ad). Bu gerçek bir sabit değildir ve $provide.constant ile herhangi bir zaman üzerine yazılabilir. Zincirleme angular.module(...) zincirleme Module object ve Açısal olmayan bağlamda anlam ifade etmemektedir.

Açısal modüller ve ES6 modülleri için ayrı ayrı ihracat tutun. Normal olarak diğer modüllerde içe aktarılabilen ve kullanılabilen bir dize olan name property Angular modülünü dışa aktarmak gelenekseldir.

export const foo = ...; 

export default angular.module('myConstants', []).constant('foo', foo).name; 

O foo ithalat içindir, ancak genellikle varsayılan olmayan ES6 ithalat/ihracat dile özgü kullanım (soyut sınıflar, baz nesneler, vb) ile sınırlı olmalıdır bağlıdır
import myConstantsMod, {foo} from './constants'; 

angular.module(..., [myConstantsMod])... 

ve Test edilebilirliği nedeniyle vazgeçilmez olan açısal modüler işlevselliği değiştirmemelidir.

İlgili konular