📅  最后修改于: 2023-12-03 15:11:56.867000             🧑  作者: Mango
在Angular中,你可能会在模板中使用 ngIf
指令来根据条件渲染页面元素。但有时,在尝试将它绑定到组件中的属性时,可能会得到错误消息“Can't bind to 'ngIf' since it isn't a known property of 'element'
”或“Parser Error: Unexpected token {
”。
这个错误通常是由以下几个原因之一导致的:
你需要在组件导入中导入CommonModule
。在应用中使用其它内置指令时,通常都需要这个模块。确保在组件的imports数组中添加这个模块,例如:
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
],
})
你在模板中没有像下面这样的语句:
*ngIf="expression"
在模板中括号内部应该只包含一个表达式:如果你像下面这样放置了多个语句,会出现上面提到的错误:
<div ngIf="{ condition: isTrue(), value: getValue() }">...</div>
要修复这个错误,就需要将多个语句转换为单个布尔值或表达式:
<ng-container *ngIf="isTrue() && getValue()">...</ng-container>
在某些情况下,你需要在@Component
装饰器中添加schemas
属性以正确地解析指令和组件。这是一个示例:
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.scss'],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class MyComponent implements OnInit {}
在使用第三方库时,此类情况非常常见。
尝试上面提到的解决方案,看看哪个可以解决你的问题吧!