现在提交已被angular2捕获,即使在<form>中有action =.
演示链接:http://plnkr.co/edit/4wpTwN0iCPeublhNumT5?p = preview
//our root app component
import {Component} from 'angular2/core'
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>Hello {{name}}</h2>
<form action="https://www.google.com" target="_blank" method="POST">
<input name="q" value="test">
<button type="submit">Search</button>
</form>
</div>
`,
directives: []
})
export class App {
constructor() {
this.name = 'Angular2'
}
}
Run Code Online (Sandbox Code Playgroud)
Thi*_*ier 74
您应该利用该NgSubmit指令,如下所述:
<form (ngSubmit)="onSubmit()" #heroForm="ngForm">
(...)
<input type="text" [(ngModel)]="data.name"/>
(...)
<button type="submit">Send</button>
</form>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当您单击提交按钮时,onSubmit将调用组件的方法,您将能够使用HTTPAngular2上的类手动将数据发送到服务器:
@Component({
})
export class MyComponent {
constructor(private http:Http) {
this.data = {
name: 'some name'
(...)
};
}
onSubmit() {
this.http.post('http://someurl', JSON.stringify(this.data))
.subscribe(...);
}
}
Run Code Online (Sandbox Code Playgroud)
这样您就可以保持在同一页面中.
编辑
在您发表评论之后,您需要禁用NgForm捕获submit事件的指令的行为并阻止其传播.请参阅此行:https://github.com/angular/angular/blob/master/modules/%40angular/forms/src/directives/ng_form.ts#L141.
为此,只需将ngNoForm属性添加到表单:
<form ngNoForm action="https://www.google.com" target="_blank" method="POST">
<input name="q" value="test">
<button type="submit">Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将为您的表单提交打开一个新窗口.
希望它对你有帮助,蒂埃里
Lan*_*ley 12
试试这个:
<form action="https://www.google.com" target="_blank" method="POST" #form>
<input name="q" value="test">
<button type="submit" (click)="form.submit()">Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)
http://plnkr.co/edit/Qjh8ooPpkfVgEe0dIv4q?p=preview
您也可以通过这种方式提交表格。
这是 HTML 标记。
<form (ngSubmit)="onSubmit($event)" #f="ngForm">
(...)
<input type="text" [(ngModel)]="data.name"/>
(...)
<button type="submit">Send</button>
</form>
Run Code Online (Sandbox Code Playgroud)
这是.ts 文件中的代码。
onSubmit(e) {
e.target.submit();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69703 次 |
| 最近记录: |