0

我已经使用角材料在Angular 2中创建了一个表单。下面是工作代码:如何在Firebase托管中保存来自Angular 2表单(使用角度材质)的数据?

<form> 
    <md-input-container> 
     <md-placeholder> 
      <md-icon>face</md-icon> Name 
     </md-placeholder> 
     <input mdInput name="name" [(ngModel)]="name" required> 
     <md-error>This field is required</md-error> 
    </md-input-container> 

    <md-input-container> 
     <md-placeholder> 
      <md-icon>email</md-icon> Email 
     </md-placeholder> 
     <input mdInput name="email" [(ngModel)]="email" required> 
     <md-error>This field is required</md-error> 
    </md-input-container> 

    <button md-raised-button color="primary" type="submit">SUBMIT</button> 
</form> 

我要去主持这个网页在火力地堡托管(https://firebase.google.com)。现在我想知道如何在用户点击提交按钮时将这两个用户输入(姓名和电子邮件)保存在数据库中。我现在面临1个以上问题,如果我尝试这样的代码:

<form action="some_url" method="post" #form> 
    .... 
    .... 
<button md-raised-button color="primary" type="submit" (click)="form.submit()">SUBMIT</button> 
</form> 

据提交表单没有做一样,如果表单字段为空,然后又是提交任何验证。

回答

0

不确定组件代码的外观如何,您需要在组件类中添加验证。

您可以阅读更多关于Form validations in angular here.

一旦你有有效的数据,你可以很容易地使用angularfire2保存数据。

import { AngularFire } from 'angularfire2'; 

... 
constructor(private af: AngularFire) {} 

submit(){ 
    someOBj = {name: <value>,email: <value>} 

    // If list 
    this.af.database.list(<url>).push(someOBj); 
    // If object 
    this.af.database.object(<url>).set(someOBj); 
} 
... 

希望这有助于!

+0

我已将'required'放在标记中。这是唯一的验证。在我的开始代码中,如果我单击提交而没有任何输入,它将显示错误消息,因此不需要在组件类中添加验证。 –

+0

是的,它会显示错误消息,但它不会停止提交操作,因为您需要处理错误并处理它以便不执行提交操作,您可以禁用该按钮,直到所有错误未解决。检查我分享的链接列出所有可能的情况。 –

相关问题