【问题标题】:While creating form I am getting constant error Angular 4 parse error在创建表单时,我收到不断的错误 Angular 4 解析错误
【发布时间】:2018-11-29 07:27:09
【问题描述】:

即使删除了 html 中的大部分部分,该错误也不会消失。我正在使用 Angular 4 创建表单。我无法找出错误或产生错误的问题。

所需文件附在下面。

HTML 文件:

<b>{{todaydate | date:'shortTime'}}</b>
<p id="dir">{{owner| json}}</p>
  <h1>
    Angular 4 {{title| uppercase}}!
  </h1>



    <form [formGroup]="formdata" (ngSubmit)="onClick(formdata.value)">
        <input type="text" name="name" placemame="Name" formControlName="name"><br>
        <input type="text" name="email" placeholder="Email" formControlName="emailid"><br>
        <input type="password" name="password" placeholder ="Passkey" formControlName="password"><br>
        <input type="submit" value="Login">
      </form>
      <br>

      <p>
        Email:{{formadata.emailid}}
        Name:{{formdata.name}}
      </p>

<br/>

<br/>
<br/>
  <p>{{ms.sp}}</p>
    <ul>
      <li><a routerLink="list">list</a></li>
      <li><a routerLink="list2">list2</a></li>
    </ul>

<br/>
<router-outlet></router-outlet>
<button (click)="myClick()">Get Data</button>
<table>
<tr>
  <!--td>ID</td-->
  <td>Name</td>
  <!--td>Username</td-->
  <td>Email</td>
  <!--td>Phone</td>
  <td>City</td-->
</tr>
<tr *ngFor="let i of httpdata">
  <!--td>{{i.id}}</td-->
  <td>{{i.name}}</td>
  <!--td>{{i.username}}</td-->
  <td>{{i.email}}</td>
  <!--td>{{i.phone}}</td>
  <td>{{i.address.city}}</td-->
  </tr> 
  <!--tr *ngFor="let i of formdata">
    <td>{{i.name}}</td>
    <td>{{i.emailid}}</td>
  </tr--> 
</table>`

app.component.ts : 这个组件文件。

import { Component } from '@angular/core';
import { MyserviceService } from './myservice.service';
import { HttpClient } from '@angular/common/http';
import { FormGroup, FormControl, Validators } from '@angular/forms';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

export class AppComponent {


  id:string;
  name:string;
  username:string;
  title = 'testang';
  todaydate= new Date();
  cs;
  httpdata;
  formdata;
  emailid;
  password;

  owner={name:'Corvus', age:'22', address:'I change VPN'};
  months = ["January", "Feburary", "March", "April", "May", 
  "June", "July", "August", "September",
  "October", "November", "December"];

  constructor(private http: HttpClient,private ms:MyserviceService){}
  myClick()
  { 
    this.ms.sp="This is cool!";
    this.http.get('http://jsonplaceholder.typicode.com/users').
    subscribe((data)=> this.displaydata(data));         
  }
  displaydata(data)
  {
    this.httpdata=data;
  }  

  ngOnInit(){
      this.formdata=new FormGroup({
          name: new FormControl("Johnny"),
          emailid: new FormControl("",Validators.required),
          password: new FormControl("",Validators.required)
      });
  }
  onClick(data)
    {
      this.formdata=data.emailid;
      this.formdata=data.name;    }
}

控制台:在 Chrome 浏览器中,它在 &lt;/form&gt; 中显示语法错误,但即使在 html 中删除整个表单部分后,我仍然遇到同样的错误。

compiler.js:2547 Uncaught Error: Template parse errors:
Unexpected closing tag "form". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags ("
  list works

  [ERROR ->]</form>
</p>
</div>
"): ng:///AppModule/ListComponent.html@3:2
    at syntaxError (compiler.js:2547)
    at DirectiveNormalizer.push../node_modules/@angular/compiler/fesm5/compiler.js.DirectiveNormalizer._preparseLoadedTemplate (compiler.js:14102)
    at compiler.js:14094
    at Object.then (compiler.js:2538)
    at DirectiveNormalizer.push../node_modules/@angular/compiler/fesm5/compiler.js.DirectiveNormalizer._preParseTemplate (compiler.js:14094)
    at DirectiveNormalizer.push../node_modules/@angular/compiler/fesm5/compiler.js.DirectiveNormalizer.normalizeTemplate (compiler.js:14080)
    at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver.loadDirectiveMetadata (compiler.js:17282)
    at compiler.js:24906
    at Array.forEach (<anonymous>)
    at compiler.js:24905

【问题讨论】:

    标签: html angular


    【解决方案1】:

    我刚刚在 stackblitz 上尝试过,一切似乎都很好(至少在 HTML 部分)。 这是我的链接: https://stackblitz.com/edit/angular-puca4m

    尝试重新运行应用程序(关闭编译器并再次打开并运行“ng serve”)。

    【讨论】:

      【解决方案2】:

      我认为您必须重新访问 Angular 教程。研究更多关于响应式表单的示例。

      <div>
          <form [formGroup]="formdata" (ngSubmit)="onClick(formdata.value)">
              <input type="text" name="name" placemame="Name" formControlName="name"/>
              <br/>
              <input type="text" name="email" placeholder="Email" formControlName="emailid"/>
              <br/>
              <input type="password" name="password" placeholder ="Passkey" formControlName="password"/>
              <br/>
              <input type="submit" value="Login">
          </form>
          <br>
      
          <p>
              Email:{{formdata.get('emailid').value}}
              Name:{{formdata.get('name').value}}
          </p>
      
          <br/>
      
          <br/>
          <br/>
          <ul>
              <li>
                  <a routerLink="list">list</a>
              </li>
              <li>
                  <a routerLink="list2">list2</a>
              </li>
          </ul>
      
          <br/>
      </div>
      

      ButtonOverviewExample.ts

      import { Component } from "@angular/core";
      import { FormGroup, FormControl, Validators } from "@angular/forms";
      
      @Component({
        selector: "button-overview-example",
        templateUrl: "button-overview-example.html",
        styleUrls: ["button-overview-example.css"]
      })
      export class ButtonOverviewExample {
        id: string;
        name: string;
        username: string;
        title = "testang";
        todaydate = new Date();
        cs;
        httpdata;
        formdata;
        emailid;
        password;
      
        owner = { name: "Corvus", age: "22", address: "I change VPN" };
        months = [
          "January",
          "Feburary",
          "March",
          "April",
          "May",
          "June",
          "July",
          "August",
          "September",
          "October",
          "November",
          "December"
        ];
      
        constructor() {}
        myClick() {}
        displaydata(data) {
          this.httpdata = data;
        }
      
        ngOnInit() {
          this.formdata = new FormGroup({
            name: new FormControl("Johnny"),
            emailid: new FormControl("", Validators.required),
            password: new FormControl("", Validators.required)
          });
        }
        onClick(data) {
          //this.formdata="data.emailid";
          //this.formdata=data.name;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-01
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多