我一直在编写一个需要自动完成的应用程序。我首先从dotnet命令行工具安装一些可用的模板,然后选择一个控制器并安装角度模板。
dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
dotnet new angular
我遇到的PrimeNg似乎符合我的自动完成需求。在此之后,我尝试从npm安装PrimeNg,如下所示:
npm install primeng
这会按预期在node_modules中创建一个文件夹。
接下来,我按照有关如何在app.module.js文件夹中设置PrimeNg的说明进行操作。
import { AutoCompleteModule } from primeng/components/autocomplete/autocomplete';
@NgModule({
...
imports: [ AutoCompleteModule, ... ]
});
在我的html文件中,我输入了以下指令,包括绑定搜索方法和结果列表。
<p-autoComplete formControlName="city" (completeMethod)="search($event)"
[suggestions]="results"></p-autoComplete>
在@NgModule中添加导入后,应用程序无法正常工作。我收到这个错误,我在google上找不到多少。
处理请求时发生未处理的异常。 例外:调用节点模块失败并显示错误:错误:未捕获(在承诺中):TypeError:element.querySelector不是函数 TypeError:element.querySelector不是函数
现在,对于奇怪的部分。如果我在没有导入的情况下启动应用程序,则应用程序启现在,如果我在运行时键入导入并保存控件渲染,就像它正常工作一样。
一旦刷新浏览器,问题又回来了,我再次得到上述异常。我所有的考验都毫无结果。有趣的是,当我尝试的时候,即使在我多次刷新浏览器之后,代码也开始工作,此后不久,完全停止工作。
答案 0 :(得分:0)
usually: only adds, but for asp.net core is different
<link rel="stylesheet" type="text/css" href="YOUR_PATH/font-awesome.min.css" />
<link rel="stylesheet" type="text/css" href="/node_modules/primeng/resources/themes/omega/theme.css" />
<link rel="stylesheet" type="text/css" href="/node_modules/primeng/resources/primeng.min.css" />
For asp.net core: copypaste in wwwroot the file resource of primeng, found in node_modules and add in _Layout.cshtml, so:
<link rel="stylesheet" href="~/resources/themes/omega/theme.css" asp-append-version="true"/>
<link rel="stylesheet" type="text/css" href="~/resources/primeng.min.css" asp-append-version="true"/>