如何以dotnet角度引用PrimeNG AutoCompleteModule?

时间:2017-05-25 00:41:44

标签: angular typescript webpack asp.net-core primeng

我一直在编写一个需要自动完成的应用程序。我首先从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不是函数

现在,对于奇怪的部分。如果我在没有导入的情况下启动应用程序,则应用程序启现在,如果我在运行时键入导入并保存控件渲染,就像它正常工作一样。

enter image description here

一旦刷新浏览器,问题又回来了,我再次得到上述异常。我所有的考验都毫无结果。有趣的是,当我尝试的时候,即使在我多次刷新浏览器之后,代码也开始工作,此后不久,完全停止工作。

1 个答案:

答案 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"/>