Reputation: 3
<script src="" https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js ""></script>
<script>
var app = angular.module('role', []);
app.controller('fooController', function($scope) {
$scope.roles = [{
id: 1,
name: "Administrator"
}, {
id: 2,
name: "Student"
}, {
id: 3,
name: 'worker'
}];
$scope.user = {};
$scope.value=function(){
$scope.user = [name:'abc',roles:[{
id: 2,
name: 'Student'
}, {
id: 3,
name: 'worker'
}];
}
});
</script>
<body>
<button type="button" ng-click="value()">Click me </button>
<form ng-repeat="test in user">
<input type="text" ng-model="test.name">
<select multiple class="form-control" data-ng-model="user.roles" required>
<option ng-repeat="role in roles" value="{{role.id}}">{{role.name}}</option>
</select>
</body>
I want to bind the select values by defalut with ng-model i want to use only ng-repeat not ng-options by default it sholud select the values in the $scope.user.roles values
Upvotes: 0
Views: 1180
Reputation: 7117
How about this.?
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script>
var app = angular.module('role1', []);
app.controller('fooController', function($scope) {
$scope.roles = [{
id: 1,
name: "Administrator"
}, {
id: 2,
name: "Student"
}, {
id: 3,
name: 'worker'
}];
$scope.user = {};
$scope.user.roles = [{
id: 2,
name: 'Student'
}, {
id: 3,
name: 'worker'
}];
$scope.user.roles.id = $scope.user.roles.map(function(a) {
return a.id;
});
});
</script>
<body ng-app="role1" ng-controller="fooController">
<select multiple class="form-control" data-ng-value="user.roles" required>
<option ng-repeat="role in roles" ng-selected="user.roles.id.indexOf(role.id) != -1" value="{{role.id}}">{{role.name}}</option>
</select>
</body>
Upvotes: 1
Reputation: 342
Maybe this will help you:
<select multiple class="form-control" data-ng-model="user.roles" required>
<option ng-repeat="role in roles" value="{{role.id}}" ng-selected="{{user.roles.indexOf(role) !== -1}}">{{role.name}}</option>
</select>
Upvotes: 0