【发布时间】:2020-02-26 21:26:13
【问题描述】:
我有一个现有的应用程序,其中包含很多硬编码值。意识到数据不会改变,我首先创建了一个在运行时加载的 JSON 文件。
在现有应用程序中,如果我尝试下面的代码,应用程序会变为空白,并且看起来并非所有模型都已构建/部署,但没有编译器问题。没有发现任何问题。我已经通过在 Firefox 的调试器工具中比较我的 testApp 和这个应用程序之间的编译对象来验证这一点。
我正在运行 macOS 10.14.6、Angular 7。不确定还需要什么。
这是我的代码的模板 sn-p。
<ul *ngFor="let urlData of Urls">
<li>
<a href="{{ urlData.url }}" target="_blank"><span class="citation">{{ urlData.label }}</span></a>
</li>
</ul>
以上编译没有问题,Visual Studio Code 显示没有问题。
如果我在代码中执行以下操作,
<ul>
<li>
<a href="{{Urls[0].url}}" target="_blank">{{Urls[0].label}}</a>
</li>
<li>
<a href="{{Urls[1].url}}" target="_blank">{{Urls[1].label}}</a>
</li>
<li>
<a href="{{Urls[2].url}}" target="_blank">{{Urls[2].label}}</a>
</li>
<li>
<a href="{{Urls[3].url}}" target="_blank">{{Urls[3].label}}</a>
</li>
<li>
<a href="{{Urls[4].url}}" target="_blank">{{Urls[4].label}}</a>
</li>
</ul>
我可以访问我的对象中的数据,一切都很好。
创建了一个新的 testApp 并复制了数据文件、数据模型并更新了 app.component TS 和 HTML 模板文件,它可以正常工作。
我的应用程序正在使用 testApp 没有的材料。
我不知所措,在过去 24 小时内无法通过 Google 搜索解决问题或找到类似的内容。
重要提示: 刚刚运行了一个测试并安装了@angular/material 和@angular/cdk,我在我的testApp 中遇到了同样的问题,所以它似乎与它们有关。删除两个包恢复了 testApp 中的功能。除了将它们添加到 testApp 并在 app.module.ts 文件中添加所需的导入语句之外,没有进行其他更改。
在使用 @angular/material 和 @angular/cdk 时,可能导致 *ngFor 构造失败的原因是什么?
【问题讨论】:
-
因为你已经复制了,你可以分享到Stackblitz吗?这样我们也可以调试它。
标签: angular typescript angular-material ngfor