Angular的最新版本需要初始化变量。我该如何解决它?



下面的代码可以在旧版本的Angular中工作:

import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<input type="text" [(ngModel)]="value">
<p>{{ value | reverse }}</p>
`
})
export class AppComponent {
value: string;
}

但是,由于下面的错误,相同的代码在最新版本的Angular中不起作用:

属性'value'没有初始化式,也没有明确赋值构造函数。

不能绑定到'ngModel',因为它不是'input'的已知属性。

类型'Event'不能赋值给类型'string'。

当我查找这个问题的解决方案时,我可以找到两个解决方案:1。使用空值初始化({},"等)使用安全导航操作符(?)然而,这两种方法都不起作用。

第一种解决方案只在某些情况下有效,但在这种情况下无效。

另外,如果我甚至不能使用空值进行初始化,我该怎么办?例如,如果上面的'value'变量是一个接口,我就不能尝试初始化它。

谢谢你,

在这种情况下,我要考虑的一件事是在模板中使用ng-container作为默认值。

<ng-container *ngIf="value?.length > 0"></ng-container>

,这样反向管道就不会期望一个未定义的值。Angular在这里是先发制人的,所以我倾向于在我的模板UI中做同样的事情。

最新更新