私たちの会社でangular2を使用できるかどうかを確認するための概念を作成しています。私はかなり遠くになってしまったが、今はちょっと立ち往生している。私はRESTリソースを消費していますし、フォームを使ってGet、Post、Put、Deleteのようにしています。これは、今、私がやって好きなものを何とか提出提出(イベント)の方法で検出され、私は現在、ザ・登録し、私の@ComponentAngular2 RC5反応形式で使用される送信ボタンの検出
import {Component, OnInit} from "@angular/core";
import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
import {HelloWorld} from "../../restclient/helloworld/helloworld.model";
import {HelloWorldClient} from "../../restclient/helloworld/helloworld.client";
@Component({
selector: "helloworld-form",
template: require('./helloworld-form.html')
})
export class HelloWorldForm implements OnInit{
fb: FormBuilder;
form: FormGroup;
getId : number;
constructor(fb: FormBuilder, private _helloWorldClient: HelloWorldClient) {
this.fb = fb;
this.form = fb.group({
"id": '',
"message": '',
"getId": ''
});
}
ngOnInit(): void {
this.form.controls["getId"]
.valueChanges.subscribe(value => {
this.getId = value;
});
}
public setData(data : HelloWorld): void {
this.form = this.fb.group({
"id": data.id,
"message": data.message,
"getId": ''
});
}
public getClicked() {
this._helloWorldClient
.GetSingle(this.getId)
.subscribe((data:HelloWorld) => this.setData(data),
error => console.log(error),
() => console.log('Fetching single by id ' + this.getId + " completed"));
}
public submit(event) {
event.preventDefault();
console.log(event);
var target = event.target || event.srcElement || event.currentTarget;
console.log(target);
var idAttr = target.attributes.id;
console.log(idAttr);
var value = idAttr.nodeValue;
console.log(this.form);
}
}
に送り返されます
<section>
<form [formGroup]="form" (submit)="submit($event)">
<table>
<tr>
<td colspan="2"><label>Id:</label></td>
<td colspan="2"><input type="text" formControlName="id"></td>
</tr>
<tr>
<td colspan="2"><label>Message:</label></td>
<td colspan="2"><input type="text" formControlName="message" size="50"></td>
</tr>
<tr>
<td><button id="getButton" type="submit">GET</button> <input type="text" formControlName="getId"/></td>
<td><button id="postButton" type="submit">POST</button></td>
<td><button id="putButton" type="submit">PUT</button></td>
<td><button id="deleteButton" type="submit">DELETE</button></td>
</tr>
</table>
</form>
</section>
提出したフォームでありますボタンが押されました。イベントがそのデータを保持することを期待していましたが、ボタンがクリックされていることを明確に示す方法がなく、フォームが送信されていました。これを行うには、Angular2で承認された方法は何ですか?私は、各ボタンにクリックイベントを追加し、そのボタンがクリックされたコンポーネントの変数に保存することを考えていましたが、それは正しい方法ではありません。ギュンターZöchbauerへ
ドゥ私は思い出す必要があるこの行から提出してください。
削除します。私はそれがとにかくこのように何もしないことを期待しました。 –
それは私が実際にボタンでmouseeventを持っているように動作しますが、フォームはもう送信されないので、コンポーネントにフィールド値はありません。 はこのようにそれを試してみました: <ボタンID = "getButton" タイプ=(クリック)し "送信" = "提出($イベント 'GET')"> の – kenny