我在綁定與關聯數組的下拉值時出現問題。與軌道的下拉綁定問題
問題是跟蹤如此喜歡,當我不添加跟蹤到我的下拉列表,然後我有我的綁定與下拉列表,當我添加軌道,然後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