2017-01-17 13 views
0

Я создал динамическую форму, следуя инструкциям в angular cookbook, а затем попытался создать форму с метаданными, которые у меня есть в моей базе данных.Динамическая форма Angular2 с удаленными метаданными

Я сделал HTTP-запрос к типам полей, именам, идентификаторам и т. Д., Но когда я пытаюсь построить форму, как в угловом примере, ничего не происходит или я получаю ошибки на консоли.

Вот код из учебника:

export class AppComponent { 
    questions: any[]; 
    constructor(service: QuestionService) { 
     this.questions = service.getQuestions(); 
    } 
} 

И это то, что я сделал:

export class AppComponent implements OnInit { 
    campos: any[] = []; 
    constructor(private servico: FormDadosService) {} 
    ngOnInit() { 
    this.servico.getCampos().subscribe(this.processaCampos); 
    } 
    processaCampos(dados) { 
    for (let i = 0; i < dados.length; i++) { 
     this.campos.push(new CampoBase({ 
     nome: dados[i].ZI2_NOME, 
     label: dados[i].ZI2_DESC, 
     ordem: dados[i].ZI2_ORDEM, 
     obrigatorio: dados[i].ZI2_OBRIGAT, 
     tamanho: dados[i].ZI2_TAM, 
     valor: '', 
     tipoCampo: dados[i].ZI2_TIPO 
     })) 
    } 
    } 
} 

Я получаю эту ошибку:

error_handler.js:50EXCEPTION: Cannot read property 'push' of undefined

Я думаю, что мне нужно знать способ визуализации формы после того, как все данные о ней появились из моего HTTP-запроса.

+1

Какие ошибки вы получаете? Можете ли вы включить соответствующую часть своего кода? – user2314737

+0

google сделал: класс экспорта AppComponent { вопросы: any []; конструктор (услуга: QuestionService) { this.questions = service.getQuestions(); } } –

+0

и я: класс экспорта AppComponent реализует OnInit { campos: any [] = []; конструктор (частный servico: FormDadosService) {} ngOnInit() {this.servico.getCampos(). Подписаться (this.processaCampos); } processaCampos (Dados) { для (пусть я = 0; я

ответ

0

Я сделал это работает так:

export class AppComponent implements OnInit { 

    campos: any[] = []; 

    constructor(private servico: FormDadosService) { } 

    ngOnInit() { 
    this.servico.getCampos().subscribe((data) => { 
     data.forEach(campo => { 
     this.campos.push(new CampoBase({ 
      valor:  '', 
      nome:  campo.ZI2_CAMPO, 
      label:  campo.ZI2_DESC, 
      tipoCampo: campo.ZI2_TIPO, 
      tamanho: campo.ZI2_TAM 
     })) 
     }); 
    }); 
    } 
} 

Этот вопрос может быть помечено как решить.

Спасибо всем.

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

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