我正在尝试使用Kendo UI创建一个下拉列表,除了在屏幕加载时具有默认的 选择 值时,它才能正常工作。
根据他们的documentation,我的代码应如下所示:
HTML:
<kendo-dropdownlist formControlName="description"
[data]="definitionData.Languages"
[(ngModel)]="languageValue"
[textField]="'Value'"
[valueField]="'Key'"
[value]="2"
[valuePrimitive]="true">
</kendo-dropdownlist>
<span class="left col-xs-6">
<input type="text" id="descriptionField" class="form-control" [value]="getValue(descriptionForm.controls.description.value)" #descriptionField (blur)="updateDescriptionValue(descriptionField.value, languageValue)" />
</span>
组件:
public descriptionForm: FormGroup = new FormGroup({
description: new FormControl()
});
我的下拉列表有效,但加载页面时默认选中的值为空白,而且应该是Key: 2
注意:我不想使用[defaultItem]
,因为它只会复制该项目,这意味着它会在下拉列表中出现2次。
我尝试了很多东西,但我无法弄清楚我应该做些什么!
提前致谢
答案 0 :(得分:6)
您应该在value
和ngModel
绑定之间进行选择。来自documentation:
DropDownList不支持同时使用
value
属性和ngModel
值绑定。
value
属性的解决方案:
ngModel
。valueChange
事件并在模型中设置值。HTML:
<kendo-dropdownlist formControlName="description"
[data]="definitionData.Languages"
(valueChange)="handleValue($event)"
[textField]="'Value'"
[valueField]="'Key'"
[value]="2"
[valuePrimitive]="true">
</kendo-dropdownlist>
COMPONENT:
handleValue(value) {
this.languageValue = value;
}
ngModel
属性的解决方案:
value
。HTML:
<kendo-dropdownlist formControlName="description"
[data]="definitionData.Languages"
[(ngModel)]="languageValue"
[textField]="'Value'"
[valueField]="'Key'"
[valuePrimitive]="true">
</kendo-dropdownlist>
COMPONENT:
constructor(){
this.languageValue = 2;
}