gpt4 book ai didi

javascript - Angularjs select 未将匹配模型标记为已选择

转载 作者:行者123 更新时间:2023-12-03 03:04:59 25 4
gpt4 key购买 nike

我的 ngModel 在选择时遇到问题,没有显示为选定的。 id 和 name 都匹配,但不起作用,请参阅 selectedState。将模型指向选项数组中的实际对象是可行的,请参阅 selectedState2。不知道发生了什么......

fiddle : http://jsfiddle.net/fedorsmirnoff/b49n4Ldp/2/

<select ng-model="selectedState" ng-options="state.name for state in stateOptions"></select>

<select ng-model="selectedState2" ng-options="state.name for state in stateOptions"></select>

function MainCtrl($scope) {
$scope.stateOptions = [
{id: 1, name: "Alaska"},
{id: 2, name: "Montana"},
{id: 3, name: "Nebraska"},
{id: 4, name: "Texas"}
]

$scope.selectedState = {id: 2, name: "Montana"};

$scope.selectedState2 = $scope.stateOptions[1];

}

最佳答案

这是因为每个对象都有 Angular 提供的自己的 $hashKey,Angular 使用它来确定它们是否相同。您正在 $scope.selectedState 上创建一个新对象(具有不同的 $hashKey)。您在 $scope.selectedState2 上设置它的方式是正确的。

您还可以使用 track by 通过 state.id 而不是对象的 $hashKey 进行 Angular 跟踪:

<select ng-model="selectedState" ng-options="state.name for state in stateOptions track by state.id"></select>

关于javascript - Angularjs select 未将匹配模型标记为已选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com