Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 如果在ng选项中使用track by,则不会更新selectbox值_Javascript_Angularjs_Angular Ngmodel_Ng Options_Angularjs Ng Options - Fatal编程技术网

Javascript 如果在ng选项中使用track by,则不会更新selectbox值

Javascript 如果在ng选项中使用track by,则不会更新selectbox值,javascript,angularjs,angular-ngmodel,ng-options,angularjs-ng-options,Javascript,Angularjs,Angular Ngmodel,Ng Options,Angularjs Ng Options,当我在ng options中使用track by时,Angular不会更新selectbox值,即使我在selectbox中选择了其中一个值。第二次尝试后,即使已设置模型值,它仍能按预期工作 var myapp=angular.module('myapp',[]); myapp.controller('FirstCtrl',函数($scope){ $scope.items=[ ['ali','ali'] ]; }); 值:{{selected}} track by的目标是将其用于对象而不是数

当我在
ng options
中使用
track by
时,Angular不会更新selectbox值,即使我在selectbox中选择了其中一个值。第二次尝试后,即使已设置模型值,它仍能按预期工作

var myapp=angular.module('myapp',[]);
myapp.controller('FirstCtrl',函数($scope){
$scope.items=[
['ali','ali']
];
});

值:{{selected}}


track by的目标是将其用于对象而不是数组元素。我建议您使用对象。这里有一个例子

var myapp=angular.module('myapp',[]);
myapp.controller('FirstCtrl',函数($scope){
$scope.items=[
{id:1,值:'ali'},
{id:2,值:'ahmed'}
];
});

值:{{selected}}


文档中实际解释了这一点(-请查找“选择为并跟踪方式”一段)

似乎无法将
跟踪方式
与一些
选择为
表达式一起使用

但是,如果您使用
ng options=“item as item[1]作为按项目[0]跟踪的项目中的项目”
而不是
ng options=“item[0]作为按项目[0]跟踪的项目中的项目[1]”


请参见

如注释所述
跟踪对象
需要一个
对象数组
,然后您可以按任何对象属性进行跟踪

var myapp=angular.module('myapp',[]);
myapp.controller('FirstCtrl',函数($scope){
$scope.items=[
{姓名:“阿里”},
{姓名:“本”},
{姓名:“比尔”}
]
});

值:{{selected}}


track by的目标是将其用于对象而不是数组元素