【问题标题】:String contains an invalid character?字符串包含无效字符?
【发布时间】:2017-11-16 08:22:20
【问题描述】:

我目前正在尝试创建一个简单的用户登录和密码页面,而不是使用后端服务。

输入密码后,我想将我的页面路由到仪表板。我正在使用核心 UI 框架和 Angular 4。现在我有一个未捕获的错误。如何解决以下错误?

login.component.ts

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { DashboardComponent } from '../dashboard/dashboard.component';

declare var Dashboard:any;

@Component({
    templateUrl: 'login.component.html',
})
export class LoginComponent {
    data: any = {};
    constructor(private router: Router){}
    formSubmit(){
      if(this.data.username == "admin" && this.data.password == "admin"){
        this.router.navigate([Dashboard]);
      }
    } 
}

login.component.html

<div class="app flex-row align-items-center" (ngSubmit)="formSubmit()">
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card-group mb-0">
<div class="card p-2">
   <div class="card-block">
      <h1>Login</h1>
      <p class="text-muted">Sign In to your account</p>
      <div class="input-group mb-1">
         <span class="input-group-addon"><i class="icon-user"></i></span>
         <input type="text" class="form-control" placeholder="Username" [(ngModel)="data.username"]>
      </div>
      <div class="input-group mb-2">
         <span class="input-group-addon"><i class="icon-lock"></i></span>
         <input type="password" class="form-control" placeholder="Password" [(ngModel)="data.password" >
      </div>
      <div class="row">
         <div class="col-6">
            <button type="button" class="btn btn-primary px-2">Login</button>
         </div>
      </div>
   </div>
</div>
</div>
</div>
</div>
</div>
</div>

【问题讨论】:

    标签: angular typescript core-ui


    【解决方案1】:

    您需要定义属性的类型。 Object 不包含您的属性:

    interface YourDataType {
        username?: string;
        password?: string;
    }
    
    export class LoginComponent {
        data: YourDataType = {};
        // ....
        formSubmit() {
            if (this.data.username == "admin" && this.data.password == "admin") { // No error
            }
        }
    }
    

    或者如果您不想定义类型,您可以通过将类型指定为any 来选择退出:

    export class LoginComponent {
        data: any = {};
        // ....
        formSubmit() {
            if (this.data.username == "admin" && this.data.password == "admin") { // No error
            }
        }
    }
    

    【讨论】:

    • 谢谢..,编译没有错误,但有一个未捕获的错误..!! "字符串包含无效字符"
    【解决方案2】:

    在你的情况下,我在你的模板中发现了这样的错字:&lt;input type="password" class="form-control" placeholder="Password" [(ngModel)="data.password" &gt; with ] 在 >

    之前的行尾错过了

    我遇到了类似的问题,一切都编译得很好,但在运行时失败了。

    【讨论】:

    • 是的,我确实解决了 :) 但感谢您指出。对某人有用:)
    • 在所有属性之间的 html 标记中丢失了一个随机逗号字符也有类似的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    相关资源
    最近更新 更多