我尝试让用户重命名字段并在整个应用中填充数据。我有这段代码:
<label>Constraint titles: </label>
<li *ngFor="let slider of twodsliders">
<input [(ngModel)]="slider.name" name="consname" type="text" size="30" placeholder="Max Frogs"><br>
</li>
使用此模拟数据:
const TWODSLIDERS: TwoDSlider[] = [
{ id: 1, name: 'Unknowability Bounderies', max_value: 89, min_value: 22 },
{ id: 2, name: 'Acceptable Throwing Distance', max_value: 67, min_value: 11 }
];
这在app组件中:
twodsliders = TWODSLIDERS;
虽然数据绑定到正确的值,因此更改第一个输入值会更改第一个模型上的值,而更改第二个值中的值会更改第二个值,等等,首次填充数据时会出现问题。也就是说,输入框最初都包含值“可接受的投掷距离”。这里出了什么问题?
答案 0 :(得分:1)
在我发帖时回答了我的问题,但无论如何都是为了提供信息而发布的。解决方案是将name="{{slider.name}}"
添加到input元素。然后它会立即填充正确的版本。
但是,这会导致其他意外行为(删除输入字段中的所有数据都会导致错误),因此我完全删除了名称字段,而是添加了[ngModelOptions]="{standalone: true}"
。应用程序现在似乎按预期工作。