角度 - 输入值并选择占位符不起作用




我正在创建一个具有一些选择和一些输入类型的表单,如下所示。

<div id="datiRichiesta">
<div *ngFor="let d of formDatiRichiesta" class="form-row">
<input *ngIf="d.type=='text'"
type="text"
class="form-control"
placeholder="{{d.placeholder}}"
[(ngModel)]="model[d.name]"
name="{{d.name}}"
(focus)="$event.target.placeholder = ''"
(blur)="$event.target.placeholder = d.placeholder"
value="richiesta.prova"/>
<select *ngIf="d.type=='select'" 
class="form-control" 
name="{{d.name}}" 
[(ngModel)]="model[d.name]"
required>
<option selected disabled value="">{{d.placeholder}}</option>
<option *ngFor="let b of elencoBanche" value="{{b.id}}">{{b.nome}}</option>
</select>
</div>
</div>

我有两个主要问题:

  1. 我需要在输入类型上设置value,但它不起作用。我知道我应该使用类似ngValue的东西,或者至少我在网上读过,但大多数例子都提到了angularjs,我有点困惑。如果我简单地[ngValue]="richiesta.prova"浏览器抱怨Can't bind to 'ngValue' since it isn't a known property of 'input'.
  2. 我需要显示选择的placeholder,但它不起作用,因为第一个<option>与所有其他一样是下拉列表的一部分。对此我一无所知,因为它应该按原样工作。

任何帮助将不胜感激,也许有一些解释,我觉得我错过了一些关于角度绑定的东西。
谢谢。

1( NgModel 设置值。如果 model[d.name] 不为空 - 它将被设置。
https://angular.io/guide/forms
2(如何在Angular 2的选择控件中显示占位符(空选项(?
这 2 行是多余的:
(焦点(="$event.target.placeholder = ''">
(blur(="$event.target.placeholder = d.placeholder">

如果您的占位符不起作用,那么这只是意味着您已为该输入分配了一些值。在您的情况下,我 100% 确定 {{ d.占位符 }} 持有一些值(值可能等于 ' '(。将此值分配给 NULL。然后查看结果。

placeholder="{{d.placeholder}}"

最新更新