2016-01-03 1 views
3

Я пытаюсь использовать Angular2 с system.js и машинописным текстом. Он отлично работает для интерфейсов, которые я экспортировал до сих пор, но как только я пытаюсь импортировать перечисление, все это взрывается. В следующем коде Card работает нормально, но когда я импортирую Legend, я получаю ошибку GET http://localhost:3000/shared/legend 404 (Not Found).Как экспортировать машинописные перечисления с systemjs и Angular2?

import {Component, OnInit} from 'angular2/core'; 
import {CardService} from './card.service'; 
import {Card} from '../../shared/card'; 
import {Legend} from '../../shared/legend'; 

@Component({ 
    selector: 'cards-list', 
    templateUrl: 'app/cards-list.html', 
    providers: [CardService] 
}) 
export class CardsListComponent implements OnInit { 
    public cards:Card[]; 

    //using Legend is the problem! 
    public legendValues:String[] = [Legend[Legend.ARIANE]]; 

    constructor(private _cardService:CardService) { 
    } 
    getCards() { 
     this._cardService.getCards(cards => this.cards = cards); 
    } 
    ngOnInit() { 
     this.getCards(); 
    } 
} 

Вот файл Легенда:

export enum Legend { 
    THE_RAPTOR, 
    LINZA, 
    ARIANE, 
    OZAN 
} 

Почему я не могу импортировать нормальное перечисление?

ответ

3

Это работает нормально для интерфейсов я экспортирующих до сих пор, но как только я пытаюсь импортировать перечисление его все взрывает

интерфейсы время в компиляции только построить и, следовательно, не имеют воздействие во время работы. Файлы с интерфейсами не загружены во время выполнения. Однако файлы со временем работы , как classes/variables/enums и т. Д. Загружаются во время работы, и вы получаете 404 на них. Это ошибка установки сервера. Вам нужно разрешить загрузку этих JS-файлов.

+0

Спасибо за совет. Я думаю, что у меня есть дополнительная проблема с тем, что моя спецификация начертаны как ES5, и что, насколько я могу судить, не поддерживает перечисления, но это еще одна проблема! – CorayThan

1

У меня была очень похожая проблема, и в конце концов установил ее на экспорт класса фиктивного до моего перечисления ...

`

экспорта класса L {};

экспорт перечисление Легенда { THE_RAPTOR, LINZA, ARIANE, OZAN }

...

импорт {L, Legend} от '../../shared/legend' ; `

К сожалению, я не могу сказать, почему это было необходимо (хотя я видел замечания, что перечисления без класса не допускаются, почему бы и нет ?!), но это помогло мне.

0

В сильфона коды я покажу вам, как EXPORT класса (constClass) содержит список сопзИте, которые могут быть использованы в вашем классе обслуживания.

-serviceAngularClass.js-

... 
    import {WsRessources} from "./constClass"; 

      @Injectable() 
      export class PersonneService {... 

     public functionName():Observable<any>{ 
      return this.updateRessource(WsRessources.BasePath+WsRessources.affectLeavingDate...); 


     } 
}//end Class 

-constClass.js-

export class WsRessources { 
     public static BasePath='personnes'; 
     public static affectLeavingDate='/affectLeavingDate'; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^