Здесь работает Plunker
Ваш код имеет несколько проблем: в первую очередь myArray
не является ни объектом или массивом, это неправильный синтаксис, вместо этого проверьте мой.
Затем, чтобы использовать ng-options
, вам также необходимо установить ng-model
.
JS:
var myApp = angular.module('myApp', []);
myApp.controller("Test", function($scope) {
$scope.myArray = [{
"type": "application/doc",
"url": "www.google.com",
"metaInfo": {
"subType": "doc",
"filesize": "60kb"
}
}, {
"type": "application/pdf",
"metaInfo": {
"subType": "pdf",
"filesize": "60kb"
}
}, {
"type": "application/xls",
"metaInfo": {
"subType": "xls",
"filesize": "60kb"
}
}, {
"type": "application/pdf",
"metaInfo": {
"subType": "pdf",
"filesize": "60kb"
}
}];
});
HTML:
<body ng-controller="Test">
<select ng-options="c.metaInfo.subType for c in myArray | unique:'metaInfo.subType'" ng-model="selected">
<option value="">All</option>
</select>
<p>Selected: {{selected || "None"}}</p>
</body>
Для удаления дубликатов вам нужен Угловой модуль как this one использовать фильтр unique
.
Я обновил Plunker со всем, что вам нужно.
Но $ scope.myArray не является массивом ... –
это объект JSON. – Jimi
$ scope.myArray = "Результаты": { "type": "application/doc", ... это не объект –