I have following object in my controller.
function MyCntrl($scope) {
$scope.colors = [
{name:'black', shade:'dark',variant:['metal','pure','knight']},
{name:'white', shade:'light',variant:['pure','knight']},
{name:'red', shade:'dark',variant:['metal','pure']},
{name:'blue', shade:'dark',variant:['metal','knight']},
{name:'yellow', shade:'light',variant:['chrome','silver','knight']}
];
}
Two questions.
1.How can I create a select box with 'variant' array in each object without duplication? Is this possible with ng-options? I'm looking for this -
<select ng-model="selectedVariant">
<option>Metal</option>
<option>Pure</option>
<option>Knight</option>
<option>Chrome</option>
<option>Solver</option>
</select>
- How can I apply filter to each variant array when using ng-repeat? I tried following
<div ng-controller="MyCntrl">
<select ng-model="selectedVariant" ng-options="variant for variant in (c.variant for c in colors)"></select><br>
<ul>
<li ng-repeat="c in colors | filter:{c.variant:selectedVariant}">{{c.name}}</li>
</ul>
</div>
selectedVariantas predicate