Reputation: 4249
I have following weird situation - Controller snippet -
$scope.filterNum = {0: 'filterVal1', 1: 'filterVal2', 2: 'filterVal3', 3: 'filterVal4', 4: 'filterVal5', 5: 'filterVal6',
6: 'filterVal7', 7: 'filterVal8', 8: 'filterVal9', 9: 'filterVal10', 10: 'filterVal11', 11: 'filterVal12',
12: 'filterVal13', 13: 'filterVal14', 14: 'filterVal15', 15: 'filterVal16', 16: 'filterVal17', 17: 'filterVal18'};
$scope.operatorNum = {0: 'operatorVal1', 1: 'operatorVal2', 2: 'operatorVal3', 3: 'operatorVal4', 4: 'operatorVal5', 5: 'operatorVal6',
6: 'operatorVal7', 7: 'operatorVal8', 8: 'operatorVal9', 9: 'operatorVal10', 10: 'operatorVal11', 11: 'operatorVal12',
12: 'operatorVal13', 13: 'operatorVal14', 14: 'operatorVal15', 15: 'operatorVal16', 16: 'operatorVal17', 17: 'operatorVal18'};
$scope.getNumber = function(num) {
return new Array(num);
};
HTML Snippet
<div class="row" ng-repeat="i in getNumber(18) track by $index">
<div class="col-md-3">
<select class="form-control" ng-model="filterNum[$index]">
<option ng-repeat="filter in filters" value="{{filter}}">{{filter}}</option>
</select>
</div>
Hello {{filterNum[$index].value}}
</div>
So what I want is to print Hello (value selected in select control)
however the current expression prints nothing.
I have referred to this question however this question
Upvotes: 2
Views: 737
Reputation: 2547
Use {{ filterNum[$index] }}
instead of {{filterNum[$index].value}}
.
and, I have used dummy value for filters
variable.
See the below code.
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.filterNum = {
0: 'filterVal1',
1: 'filterVal2',
2: 'filterVal3',
3: 'filterVal4',
4: 'filterVal5',
5: 'filterVal6',
6: 'filterVal7',
7: 'filterVal8',
8: 'filterVal9',
9: 'filterVal10',
10: 'filterVal11',
11: 'filterVal12',
12: 'filterVal13',
13: 'filterVal14',
14: 'filterVal15',
15: 'filterVal16',
16: 'filterVal17',
17: 'filterVal18'
};
$scope.operatorNum = {
0: 'operatorVal1',
1: 'operatorVal2',
2: 'operatorVal3',
3: 'operatorVal4',
4: 'operatorVal5',
5: 'operatorVal6',
6: 'operatorVal7',
7: 'operatorVal8',
8: 'operatorVal9',
9: 'operatorVal10',
10: 'operatorVal11',
11: 'operatorVal12',
12: 'operatorVal13',
13: 'operatorVal14',
14: 'operatorVal15',
15: 'operatorVal16',
16: 'operatorVal17',
17: 'operatorVal18'
};
$scope.filters = [
"filterVal1",
"filterVal2"
];
$scope.getNumber = function(num) {
return new Array(num);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
<div class="row" ng-repeat="i in getNumber(18) track by $index">
<div class="col-md-3">
<select class="form-control" ng-model="filterNum[$index]">
<option ng-repeat="filter in filters" value="{{filter}}">{{filter}}</option>
</select>
</div>Hello {{filterNum[$index]}}</div>
</div>
Upvotes: 3