Select with ngOptions returns undefined to ngModel

Select with ngOptions returns undefined to ngModel

本文关键字:to ngModel undefined returns with ngOptions Select      更新时间:2023-09-26

所以我试图使用ngOptions来填充它的选择字段。但是当我选择某个东西时,我在ngModel中使用的变量就会变成undefined。

这是我的HTML:

<select ng-options="name as operator.name for operator in vm.operators track by operator.value" ng-model="vm.oper"></select>

和我的Typescript:

private operators: Array<any> = [
        {
            name: 'greater than',
            value: '>'
        },
        {
            name: 'less than',
            value: '<'
        },
        {
            name: 'equal',
            value: '='
        },
        {
            name: 'greater than or equal',
            value: '>='
        },
        {
            name: 'less than or equal',
            value: '<='
        }
    ];
    private oper: any = null;

select字段显示良好,并且HTML中的值似乎是正确的。但是当我选择任意值时"op "就变成undefined

我不知道是什么引起的,它应该很简单,对吗?

尝试使用operator代替nameoperator.value

<select ng-options="operator.value as operator.name for operator in vm.operators track by operator.value" ng-model="vm.oper"></select>

<select ng-options="operator as operator.name for operator in vm.operators track by operator.value" ng-model="vm.oper"></select>

尝试初始化您的vm.opervm.operators[0] ?我认为你的vm.oper是空的,所以当你的<select>试图更新ngModel时,它实际上更新了它的范围ngModel而不是父范围

正如@JoazitoPolo建议的那样,我必须将我的选项字符串替换为"operator "。值作为虚拟机中操作符的名称。因为"name"是未定义的,所以每次都返回未定义。"as"之前的部分实际上是插入到select的值字段中的,我想这就是"track by"的作用。我完全看错了ngOptions的文档:)