Template Variable Causing Template Parse Error: There is no directive with "exportAs" set to "#start_date"
Template Variable Causing Template Parse Error: There is no directive with "exportAs" set to "#start_date"
正在尝试按照他们的文档构建 Material Design datepicker。
注意:最终目标 是将日期选择器输入绑定到组件变量,但是我无法通过这个最基本的部分。
我确定我在做一些愚蠢的事情!
控制台错误:
Uncaught Error: Template parse errors:
There is no directive with "exportAs" set to "#start_date" ("Change)="updateFilters()" placeholder="Search"/><input mat-datepicker="start_date"/><mat-datepicker [ERROR ->]#start_date="#start_date"></mat-datepicker><select name="type" [(ngModel)]="filters.fields.type" (ngM"): ng:///AppModule/AccountingComponent.html@0:574
哈巴狗文件:
.filters
input(mat-datepicker="start_date")
mat-datepicker(#start_date)
转译HTML:
<div class="filters">
<input mat-datepicker="start_date" />
<mat-datepicker #start_date="#start_date"></mat-datepicker>
</div>
显然 Angular 不喜欢输入的 #start_date
属性,但我对 template reference variables 的理解很薄弱,而且我一直无法找到有帮助的资源找出我做错了什么。
需要更改什么才能使其正常工作?
注意 - 我正在使用 Webpack 3,用 pug-html-loader 转译 pug => html.
您将尝试在 mat-datepicker 的 属性 中插入一个值,您应该在其中插入变量类型。模板变量是#start_date="HTMLDomElement"
<mat-datepicker #start_date="string"></mat-datepicker>
最后应该是
<mat-datepicker #startDate></mat-datepicker>
组件
@ViewChild('startDate') startDate : HTMLDOMElement(i.e);
正确。
当我使用 Webpack 3 并使用 pug-html-loader 转译 pug 时,我不得不另外解决如何使其按需要转译的问题。
最终,我需要添加 doctype option to the pug transpilier (doctype: 'html'
causes it to add an attribute without the value).
为此,我需要修改 Webpack 配置以正确传递参数:
webpack.conf.js 的旧配置:
module.exports = {
module: {
rules: [
// ... other rules omitted for brevity...
{
test: /\.pug$/,
loaders: ['raw-loader', 'pug-html-loader'],
}
]
},
plugins: [...]
}
更改为 webpack.conf.js 的新配置:
module.exports = {
module: {
rules: [
// ... other rules omitted for brevity...
{
test: /\.pug$/,
// NOTE: 'loaders' is deprecated in favor of 'use'
use: [
'raw-loader',
{
loader: 'pug-html-loader',
options: {
doctype: 'html'
}
}]
}
]
},
plugins: [...]
}
正在尝试按照他们的文档构建 Material Design datepicker。
注意:最终目标 是将日期选择器输入绑定到组件变量,但是我无法通过这个最基本的部分。
我确定我在做一些愚蠢的事情!
控制台错误:
Uncaught Error: Template parse errors: There is no directive with "exportAs" set to "#start_date" ("Change)="updateFilters()" placeholder="Search"/><input mat-datepicker="start_date"/><mat-datepicker [ERROR ->]#start_date="#start_date"></mat-datepicker><select name="type" [(ngModel)]="filters.fields.type" (ngM"): ng:///AppModule/AccountingComponent.html@0:574
哈巴狗文件:
.filters
input(mat-datepicker="start_date")
mat-datepicker(#start_date)
转译HTML:
<div class="filters">
<input mat-datepicker="start_date" />
<mat-datepicker #start_date="#start_date"></mat-datepicker>
</div>
显然 Angular 不喜欢输入的 #start_date
属性,但我对 template reference variables 的理解很薄弱,而且我一直无法找到有帮助的资源找出我做错了什么。
需要更改什么才能使其正常工作?
注意 - 我正在使用 Webpack 3,用 pug-html-loader 转译 pug => html.
您将尝试在 mat-datepicker 的 属性 中插入一个值,您应该在其中插入变量类型。模板变量是#start_date="HTMLDomElement"
<mat-datepicker #start_date="string"></mat-datepicker>
最后应该是
<mat-datepicker #startDate></mat-datepicker>
组件
@ViewChild('startDate') startDate : HTMLDOMElement(i.e);
当我使用 Webpack 3 并使用 pug-html-loader 转译 pug 时,我不得不另外解决如何使其按需要转译的问题。
最终,我需要添加 doctype option to the pug transpilier (doctype: 'html'
causes it to add an attribute without the value).
为此,我需要修改 Webpack 配置以正确传递参数:
webpack.conf.js 的旧配置:
module.exports = {
module: {
rules: [
// ... other rules omitted for brevity...
{
test: /\.pug$/,
loaders: ['raw-loader', 'pug-html-loader'],
}
]
},
plugins: [...]
}
更改为 webpack.conf.js 的新配置:
module.exports = {
module: {
rules: [
// ... other rules omitted for brevity...
{
test: /\.pug$/,
// NOTE: 'loaders' is deprecated in favor of 'use'
use: [
'raw-loader',
{
loader: 'pug-html-loader',
options: {
doctype: 'html'
}
}]
}
]
},
plugins: [...]
}