具有远程元数据的Angular2动态表单

时间:2017-01-17 18:10:20

标签: forms angular dynamic metadata angular2-forms

我按照angular cookbook中的说明创建了一个动态表单,然后我尝试使用我在数据库中的元数据创建表单。

我对get字段类型,名称,ID等发出了HTTP请求,但是当我尝试按照角度示例构建表单时,没有任何反应或者我在控制台上出现错误。

以下是教程中的代码:

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

我收到此错误:

  

$("#ddl_MMS").multiselect({ columns: 1, placeholder: "@Report.ALLMMS", selectAll: true, minHeight:40 });

我想我需要知道一种方法来渲染表单后,有关它的所有数据都来自我的HTTP请求。

1 个答案:

答案 0 :(得分:0)

我以这种方式工作:

var tHttpReq = (HttpWebRequest)WebRequest.Create(URL);
            // adds basic headers

tHttpReq.ContentType = "application/json";
tHttpReq.Method = "POST";
tHttpReq.Accept = "application/json";
using (StreamWriter sWriter = new StreamWriter(tHttpReq.GetRequestStream()))
{
      // creates request body in the concrete class
      string rBody = "{\"username\": \"User\", \"password\": \"Password\", \"output_mode\": \"json\"}";
       // writes the data to the stream
       sWriter.Write(rBody);
       sWriter.Flush();
}
var webHttpResp = (HttpWebResponse)tHttpReq.GetResponse();

这个问题可以标记为已解决。

谢谢大家。

相关问题