我在项目中使用了Angular Material一段时间。在使用md-select时,我遇到了一个问题,其中出现重复的md-option值错误。md-select在md-options中检查重复选项的标准是什么
我知道md-options需要唯一的值,我正在为md-options分配一个数组。然而,这是一组对象。所以我想知道用于区分对象的标准是什么。 API没有多说这个。
我的用例需要根据另一个md-select的选择来改变md-select的md-options。所以我正在观察第一个md-select的选择,并在其更改中发射一个手表并更新第二个md-select的md-options。
下面是我使用分配阵列MD-选项的方法:
$scope.$watch('search.selectedTrades', function(newTrades, oldTrades) {
if ((newTrades.length === 0)) {
$rootScope.search.selectedTrades = oldTrades;
return;
}
if ($rootScope.search.selectedTrades && $rootScope.search.selectedTrades.length > 0) {
if (!$rootScope.identity.isClusterManager) {
$rootScope.search.selectedTrades = newTrades;
SearchFilterData.setSelectedTrades(newTrades);
$rootScope.search.selectedClusters = [];
$scope.clusters = [];
$scope.subareas = [];
var clusterKeys = [];
$rootScope.search.selectedTrades.forEach(function(t) {
t.lstClusters.forEach(function(c) {
if (clusterKeys.indexOf(c.ClusterKey) == -1) {
clusterKeys.push(c.ClusterKey);
$scope.clusters.push(c);
}
})
})
}
} else {
$scope.clusters = [];
$scope.subareas = [];
$rootScope.search.selectedClusters = [];
$rootScope.search.selectedSubAreas = [];
SearchFilterData.setSelectedTrades($rootScope.search.selectedTrades);
}
});
在上面的代码中,clusterKey是每个对象的唯一实体。所以我使用它来将唯一值推入数组中。 然而,在我选择并取消选择各种选项后,这种情况发生在几个随机场景中。请告知我做错了什么,标记两个对象的标准重复
如何解决这个问题?我有相同的情况。 – marty331
我也正在'重复md-选项值'异常。我已验证绑定到选项列表的数组没有重复的条目。 –