2016-08-18 29 views
1

客户端:如何使用Angular2发后以FormParams

我也张贴在angular2这样的:

doSelectMessagesAttributesUrl2(pushRequest : PushRequest) { 
    console.info("sending post request"); 

    let headers = new Headers({ 
     'Content-Type': 'application/json'}); 

    return this.http 
     .post(this.selectMessagesAttributesUrl, JSON.stringify(pushRequest), {headers: headers}) 
     .map(res => res.json().data) 
     .subscribe(
      data => { }, 
      err => { } 
     ); 
} 

我应该如何改变调用与FormParam服务器的请求?

服务器:

@Path("/FeatureGetQueueData") 
    @POST 
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
    @Produces(MediaType.APPLICATION_JSON) 
    public String runFeatureGetQueueData(@FormParam("queue") MyString paramQueue) throws Exception { 

     if (!SupporToolAlert.validateEnvironment(SupporToolConfig.ROW)) { 
      return SupporToolAlert.invalidEnvironment(); 
     } 

     String queue = PushQueueConfig.conf().QUEUE.get(paramQueue.value); 

回答

0

你与任何型号的结合您的形式?

在文档中,你可以搜索很好的例子:right here

但是,如果你不希望你的形式创建类,ü可以做这样的事情:

从表单中添加的每个元素为对象,并通过http发送这个对象。

是这样的:

form.html

<form> 
<div class="form-group"> 
      <label for="status"> Status: </label> 
      <input id='status' type="text" class="form-control" [ngModel]="formModel.operatorStatus" (ngModelChange)="changeFormModel('status', $event)" > 
      </div> 
</form> 
现在

在你的组件,你需要初始化空对象从模型中包含的数据并实现changeFormModel:

component.ts

private formModel: any = {}; 
private changeFormModel(model, event) { 
    this.formModel[model] = event; 
} 

现在在你的http请求你可以发送,formModel,记得将其串化;)

这不是一个完美的解决方案,但对我来说就像魅力,但在不久的将来我会从文档实现一个解决方案。

我希望它对你有帮助;)

+0

'this.formModel [model] = event'这是什么意思? –

+0

将属性设置为对象,事件包含$ event形式的值 – Daredzik