我试图找出为什么我的Angular应用程序的一部分显示 - 字面意思 - 'zipcodeFilters.text',而不是评估结果。
我在这里使用的相关视图代码如下所示:
<filter-option name="Zipcode"
placeholder="Enter ZIP Code"
[usePlaceholder]="!zipcodeFilters.text"
[visible]="zipcodeFilters.enabled">
<filter-label>{{zipcodeFilters.text}}</filter-label>
<filter-menu>
<div class="visit-type-filter-options">
<md-input-container [dividerColor]="color">
<input mdInput placeholder="ZIP Code"
value="zipcodeFilters.text"
[(ngModel)]="zipcodeFilters.text"
(keyup.enter)="filterByZip(zipcodeFilters.text)">
</md-input-container>
<button md-button class="reset-button" (click)="filterByZip(zipcodeFilters.text)">Filter</button>
<button md-button class="reset-button" (click)="unfilterZipResults()">Reset</button>
</div>
</filter-menu>
</filter-option>
从上一节你会看到:
placeholder="Enter ZIP Code"
[usePlaceholder]="!zipcodeFilters.text"
...用来说,如果没有'zipcodeFilters.text'的结果(即用户没有输入任何内容),那么使用占位符,即“输入邮政编码”。
然而,当我第一次加载组件视图时,我没有看到“输入邮政编码”,我看到 - 字面意思 - 'zipcodeFilters.text'。
如果我删除它,则过滤器会按预期显示占位符文本。但是,刷新页面后,我又回到了'zipcodeFilters.text',而不是占位符文本。
相应组件的相关部分如下所示:
zipcodeFilters = {
enabled: true,
options: [
],
text: null
};
public filterByZip(zip) {
const arr: any = [];
if (zip) {
arr.push(zip);
}
const zipCall = this.zip = arr.length === 0 ? undefined : arr.toString().split(', ');
const zipArr = Array.from(zipCall);
this.sendZipcode.emit(zipArr);
}
unfilterZipResults() {
this.sendZipcode.emit();
const arr = [];
this.zipcodeFilters.text = '';
}
是什么让这个显示文字文本而不是评估表达式?
答案 0 :(得分:3)
值=&#34; zipcodeFilters.text&#34;删除这部分..它应该工作