I am rewriting an angular select option, previously I was using a bootstrap btn-group class with numerous li classes, which used ng-click to set a filter in my ng-repeat list which worked perfectly. Like so:
<li role="menuitem">
<a ng-click="myFilter = { moving: true }">Delivery & Removals</a>
</li>
However, after some feedback, I have been asked to change it to a <select> with <option> set up, so to reflect the selected option.
I have added a list to my controller scope, like so:
$scope.taskCategories = [
{'cat': 'Moving & Delivery', 'filter': 'moving: true'},
{'cat': 'DIY', 'filter': 'DIY: true'},
{'cat': 'Marketing', 'filter': 'marketing: true' }
]
Here is the select
{{ selectedCat.filter }}
<select ng-model="selectedCat" ng-value="x.filter" ng-options="x.cat for x in taskCategories">
</select>
Here is my ng-repeat
data-ng-repeat="task in vm.tasks | filter:search | filter:myFilter | filter: { filter: selectedCat.filter } : true | orderBy:predicate:reverse | filter:x as results"
To give a bit of relevance, my ng-click filters work like so:
ng-click="myFilter = { moving: true }"
However, when I click on one of my select values, which are ng-repeating through the $scope.taskCategories just fine, my ng-repeat returns 0 results, which is not correct.
If anyone could give me any pointers on where I am going wrong, I would greatly appreciate it. Thanks in advance! :)