我在绑定与关联数组的下拉值时出现问题。与轨道的下拉绑定问题
问题是跟踪如此喜欢,当我不添加跟踪到我的下拉列表,然后我有我的绑定与下拉列表,当我添加轨道,然后O无法自动选择下拉值。
我想用ng-options跟踪,这样角度js不会添加 $$ hashKey并利用与track by相关的性能优势。
我不明白为什么会发生这种行为。
注:我只是想绑定的选择名像比萨或汉堡我的每$ scope.items,而不是整个对象。
更新:据我所知,与我的$ scope.items的当前数据结构的这么多尝试它不是与ng-options一起工作,我想用ng-options跟踪来避免生成散列键由Angular js。我也尝试了@MarcinMalinowski建议的ng-change,但是我得到的关键是未定义的。
那么,我的数据结构$ scope.items应该如何,以便当我需要访问我的$ scope.items中的任何项目?我可以在不进行循环的情况下访问它(就像我们从关联数组中访问项目一样),就像我现在可以通过正确的数据结构访问它一样,并且只使用ngoptions和track by。
var app = angular.module("myApp", []);
app.controller("MyController", function($scope) {
$scope.items = [
{
"title": "1",
"myChoice" :"",
"choices": {
"pizza": {
"type": 1,
"arg": "abc",
"$$hashKey": "object:417"
},
"burger": {
"type": 1,
"arg": "pqr",
"$$hashKey": "object:418"
}
}
},
{
"title": "2",
"myChoice" :"",
"choices": {
"pizza": {
"type": 1,
"arg": "abc",
"$$hashKey": "object:417"
},
"burger": {
"type": 1,
"arg": "pqr",
"$$hashKey": "object:418"
}
}
}
];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<ul ng-app="myApp" ng-controller="MyController">
<div ng-repeat="data in items">
<div>{{data.title}}
</div>
<select ng-model="data.myChoice"
ng-options="key as key for (key , value) in data.choices track by $index"><option value="">Select Connection</option></select>
</div>
</ul>
为什么不'轨道由$ index' –
@MaximShoustin添加trackby $索引总是最后autoselecting item.See我的更新我添加了$指数,现在我无法选择任何其他项目 –
当提及自己(“我”)时,请始终使用大写字母。这样可以节省一些志愿编辑在改进你的帖子时的工作(大概所有278人都有相同的错误)。谢谢! – halfer