Et si nous avons ce scénario ....Ajouter une icône de glyphicon à un élément sélectionné 'sauvegardé' en utilisant ng-options
Une liste déroulante avec 3 éléments. Après avoir sélectionné un élément et cliqué sur le bouton Enregistrer, le modèle ng du menu déroulant est lié à une balise html, de sorte que le ng-model possède maintenant une icône de glyphicon ajoutée avant le nom de l'élément.
J'ai essayé une implémentation de base, mais je n'ai pas réussi à la terminer.
Le modèle
var app = angular.module('myApp', ['ngSanitize'])
app.controller('myController', function($scope){
$scope.name = 'Dylan'
$scope.saved = false
$scope.data = [{
'name' : 'Item 1',
'color': 'red'
},
{
'name' : 'Item 2',
'color': 'blue'
},
{
'name' : 'Item 3',
'color': 'green'
}]
$scope.saveItem = function(item) {
// var index = $scope.data.indexOf(item);
// $scope.data[index].name = "✓" + item.name
// console.log(index)
$scope.binder = " ✓ " + item.name;
}
})
La vue
<body ng-app="myApp">
<div ng-controller="myController">
<span class="glyphicon glyphicon-star" aria-hidden="true"></span> {{name}}
<div class="row">
<div class="col-sm-2" >
<select class="form-control selectPicker glyphicon"
ng-model="selectedItem"
ng-options = "item as item.name for item in data">
</select>
</div>
</div>
<br>
<button type="button"
class="btn btn-danger"
ng-disabled="!selectedItem"
ng-click="saveItem(selectedItem)">
Save
</button>
<div ng-bind-html="binder"></div>
</body>
Ce que je veux est ce ....
Le modèle ng actuel 'Item 1' doit être remplacé/mis à jour exactement comme le classeur (avec la coche incluse).
En outre, j'ai essayé de faire la même chose en utilisant ng-repeat, mais ce n'est pas une option pour moi car j'ai besoin d'utiliser les propriétés de l'objet dans toute l'application. Avec ng-repeat, d'après ce que je comprends, il semble que la valeur sélectionnée est une chaîne plutôt qu'un objet.
Merci à l'avance pour toute aide ou suggestions :)