设置下拉列表默认值或使用模型中的值

Set dropdown list default value or use value from model

我有一个网格,它使用外部表单来执行 editing/adding。我用 this 作为起点的例子。该表单有一个下拉列表。 [data] 来自具有 textvalue 的对象列表。

这两件事我都试过但都失败了:

有人可以给我举个例子吗?谢谢。

我尝试的第一件事的代码:

public arrayOfObjects:Array<SomeClass> = [
    SomeClass.staticList.object1,
    SomeClass.staticList.object2,
    SomeClass.staticList.object3,
    SomeClass.staticList.object4
];

defaultObject:SomeClass = SomeClass.staticList.object2 //I want the second as default.

模板中的下拉菜单使用了这​​些:

    <kendo-dropdownlist formControlName='theObject'
        [data]="arrayOfObjects" 
        [textField]="'text'"
        [valueField]="'value'"
        [valuePrimitive]="false"
        [defaultItem]='defaultObject'
        [(ngModel)]="theObject" >

下拉内容:

我尝试的第二件事的代码:

public addHandler() {
    var newRow = new RowModel();
    newReport.theObject = SomeClass.staticList.object2;
    this.editDataItem = newRow;

    this.isNew = true;
}

在这种情况下没有任何反应。下拉菜单仍然是空的。

解决方案

问题是我没有单独的 ngModel 变量。我出于某种原因认为,如果我为 ngModel 指定 FormControl 的名称,它将神奇地起作用。它没有。所以我只是创建了一个单独的变量来保存当前选择的值并且它起作用了。谢谢。

DropDown 的 defaultItem 设置用于在没有从列表中选择项目的情况下添加填充符,例如 "Select an item..."。

要完成您想要做的事情,试试这个:

<kendo-dropdownlist
    [data]="listItems"
    textField="text"
    valueField="value"
    [(ngModel)]="selectedItem"
>

public listItems = [
    { text: "Option1", value: 1 },
    { text: "Option2", value: 2 },
    { text: "Option3", value: 3 }
];

public selectedItem = this.listItems[1];