Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ngOptions选择将未定义的返回到ngModel_Javascript_Angularjs_Typescript - Fatal编程技术网

Javascript 使用ngOptions选择将未定义的返回到ngModel

Javascript 使用ngOptions选择将未定义的返回到ngModel,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,所以我尝试使用一个带有Ngooptions的select字段来填充它。但每当我选择某个东西时,我在ngModel中使用的变量就会变成未定义的 这是我的HTML: <select ng-options="name as operator.name for operator in vm.operators track by operator.value" ng-model="vm.oper"></select> 还有我的打字稿: private operators: A

所以我尝试使用一个带有Ngooptions的select字段来填充它。但每当我选择某个东西时,我在ngModel中使用的变量就会变成未定义的

这是我的HTML:

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

还有我的打字稿:

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;
专用运算符:数组=[
{
名称:'大于',
值:'>'
},
{
名称:'小于',
值:'='
},
{
名称:“小于或等于”,

值:“尝试将您的
vm.oper
初始化为
vm.operators[0]
?我估计您的
vm.oper
为空,因此当您的
尝试更新
ngModel
时,它实际上会更新其作用域ngModel,而不是父作用域尝试将您的
vm.oper
初始化为
vm.operators[0]
?我估计您的
vm.oper
为空,因此当您的
尝试更新
ngModel
时,它实际上会更新其作用域ngModel,而不是父作用域

尝试使用
操作符
而不是
名称
操作符.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.value as operator.name for operator in vm.operators track by operator.value" ng-model="vm.oper"></select>



正如@JoazitoPolo建议的那样,我必须用“operator.value As operator.name for operator in vm.operators”替换我的选项字符串,因为“name”是未定义的,它每次都返回未定义的。因此,“As”之前的部分实际上是插入select的值字段中的内容,我认为这就是“track by”的内容是的。我完全误读了ngOptions的文档:)

因为@JoazitoPolo建议我必须用“operator.value As operator.name for operator in vm.operators”替换我的选项字符串,因为“name”未定义,所以每次都返回未定义。所以“As”之前的部分是实际插入select值字段的内容,我认为这就是“track by”的用途。我完全误读了ngOptions的文档:)

尝试定义该值,并删除trackBy:ng options=“operator.value as operator.name for operator in vm.operators”@JoaozitoPolo似乎我必须用替换“name as”“operator.value as”谢谢您的评论!我误解了ngOptions的文档。请尝试定义该值,并删除trackBy:ng options=“operator.value as operator.name for operator in vm.operators”@JoaozitoPolo似乎我必须将“name as”替换为“operator.value as”“谢谢你的评论!我误解了ngOptions的文档。