📜  角度无法绑定属性 ngIf (1)

📅  最后修改于: 2023-12-03 15:11:56.867000             🧑  作者: Mango

角度无法绑定属性 ngIf

在Angular中,你可能会在模板中使用 ngIf指令来根据条件渲染页面元素。但有时,在尝试将它绑定到组件中的属性时,可能会得到错误消息“Can't bind to 'ngIf' since it isn't a known property of 'element'”或“Parser Error: Unexpected token {”。

这个错误通常是由以下几个原因之一导致的:

  1. 你需要在组件导入中导入CommonModule。在应用中使用其它内置指令时,通常都需要这个模块。确保在组件的imports数组中添加这个模块,例如:

    import { CommonModule } from '@angular/common';
    @NgModule({
    imports: [
        CommonModule
    ],
    })
    
  2. 你在模板中没有像下面这样的语句:

    *ngIf="expression"
    
  3. 在模板中括号内部应该只包含一个表达式:如果你像下面这样放置了多个语句,会出现上面提到的错误:

    <div ngIf="{ condition: isTrue(), value: getValue() }">...</div>
    

    要修复这个错误,就需要将多个语句转换为单个布尔值或表达式:

    <ng-container *ngIf="isTrue() && getValue()">...</ng-container>
    
  4. 在某些情况下,你需要在@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 {}
    

    在使用第三方库时,此类情况非常常见。

尝试上面提到的解决方案,看看哪个可以解决你的问题吧!