发生相同的问题:无法绑定到“ngIf”,因为它不是“div”的已知属性

Posted

技术标签:

【中文标题】发生相同的问题:无法绑定到“ngIf”,因为它不是“div”的已知属性【英文标题】:Same Issue occured : Can't bind to 'ngIf' since it isn't a known property of 'div' 【发布时间】:2021-12-29 05:11:43 【问题描述】:

您好,我使用的是 Angular 13,在运行“ng serve”时,我的 vscode 显示以下错误: [问题1][1]

在您继续将其标记为重复之前,请停止!这不是。 [NotASuplicate][2]

我已经尝试过上述解决方案:

在根模块中添加“BrowserModule”,在子模块中添加“CommonModule”。(我只有 1 个模块,其中提到了 BrowserModule) 确保您使用的是“ngIf”而不是“ngif”。(我不是

以下是我的项目的样子: [项目结构][3]

请问,有人知道如何解决这个问题吗? [1]:https://i.stack.imgur.com/z2zqR.jpg [2]:https://i.stack.imgur.com/5mWSH.jpg [3]:https://i.stack.imgur.com/44W9p.png

【问题讨论】:

ngIf="1==1" 可以工作吗? 嗨亚历克斯,所以尝试了这个“代码:ImageData.Info.Id”......但它仍然说...无法绑定到“ngIf”,因为它不是“span”的已知属性。 请不要通过图片分享代码,而是将重要部分粘贴在这里。 嗨 Philipp,我明白这一点,但我想分享整个项目结构,这就是包含这些图像的原因,至于在这类错误中很常见的问题的重要部分,我分享了一个这张照片也是因为有很多这样的陈述。 【参考方案1】:

经过一番挖掘和试错后,我终于能够解决这个问题。因此,发布此解决方案以防其他人遇到类似情况。

因此,搜索所有报告的“问题”,检查是否收到类似这样的错误消息。

Can’t resolve all parameters for SomeComponent: [object Object], (?)

您会注意到,如果您的 “无法绑定到 'ngIf',因为它不是已知属性” 错误没有通过我之前提到的解决方案解决,那么这些错误必须仅在上述SomeComponent's html 模板的html 文件中报告,如果是这种情况,请继续阅读。 SomeComponent 的 ts 文件应该使用注入的用户定义服务,如下所示:

export class SomeComponent

    constructor(private _DataService : DataService)
    

在这种情况下,打开您的 DataService.ts 并确保其主体看起来像这样:

@Injectable(
    providedIn: 'root',
)
export class DataService

上述部分 providedIn: 'root', 需要存在,并且您的 app.module.ts 应如下所示:

@NgModule(
    declarations: [
        AppComponent,
        SomeComponent
    ],
    imports: [
        BrowserModule
    ],
    entryComponents: [
        SomeComponent
    ],
    providers: [],
    bootstrap: [AppComponent]
)
export class AppModule  

以上部分providers: []应该相同,以防您只使用用户定义的服务。 您可能已经注意到,当您将旧的 Angular 项目迁移到新的 Angular 版本时,我们将面临此类问题。PS:以防您的 animate.css 动画无法正常工作还需要地址this。

【讨论】:

以上是关于发生相同的问题:无法绑定到“ngIf”,因为它不是“div”的已知属性的主要内容,如果未能解决你的问题,请参考以下文章

当我绑定到数组时,它似乎没有正确反映到标记 ngif

无法绑定到“ngModel”,因为它不是“输入”的已知属性。测试.spec.ts

无法绑定到“占位符”,因为它不是“ng-multiselect-dropdown”的已知属性

无法绑定到“目标”,因为它不是“div”的已知属性

无法绑定到“禁用”,因为它不是“li”的已知属性

Angular 7 无法绑定到“routerlink”,因为它不是“a”的已知属性