can*_*a_7 4 core typescript angular
我现在使用 Angular 有一段时间了,但不是专家。我正在尝试创建一个简单的用户登录和密码页面,目前不使用后端服务。
输入密码后,我想将页面路由到仪表板。我正在使用核心 UI 框架和 Angular 4。现在我有一个未捕获的错误。如何解决以下错误?
登录.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]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
登录.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>
Run Code Online (Sandbox Code Playgroud)
Ily*_*iev 10
你的情况我发现那位错字在你的模板是这样的:<input type="password" class="form-control" placeholder="Password" [(ngModel)="data.password" >有]错过了该行的前结束>
我遇到了类似的问题,一切都编译得很好,但在运行时失败了。
您需要定义属性的类型。Object不包含您的属性:
interface YourDataType {
username?: string;
password?: string;
}
export class LoginComponent {
data: YourDataType = {};
// ....
formSubmit() {
if (this.data.username == "admin" && this.data.password == "admin") { // No error
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想定义类型,可以通过将类型指定为来选择退出any:
export class LoginComponent {
data: any = {};
// ....
formSubmit() {
if (this.data.username == "admin" && this.data.password == "admin") { // No error
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18054 次 |
| 最近记录: |