0

Je veux remplir la couleur sélectionnée comme option sélectionnée dans selectbox dans un premier tempsAngularJS Sélectionnez valeur initiale pour selectbox intérieur ng-repeat

lien jsfiddle

voici ma partie:

<div ng-app ng-controller="QuestionController"> 
    <ul ng-repeat="product in products"> 
     <li> 
      <div>{{ product.selected | json }}</div> 
      <select ng-model="product.selected" ng-options="color.name for color in product.color"></select> 
     </li> 
    </ul> 
</div> 

contrôleur:

function QuestionController($scope) { 
    $scope.products = [ 
      { 
       "name": "product1", 
       "value": "product1", 
       "color": [{ name: 'red',id: 10},{ name: 'Green',id: 11},{name:'Blue',id: 12 }], 
       "selected": {name: 'Green', id: 11 } 
      }, 
      { 
       "name": "product2", 
       "value": "product2", 
       "color": [{ name: 'red',id: 10},{ name: 'Green',id: 11},{name:'Blue',id: 12 }], 
       "selected": {name: 'red', id: 10 } 
      }, 
      { 
       "name": "product3", 
       "value": "product3", 
       "color": [{ name: 'red',id: 10},{ name: 'Green',id: 11},{name:'Blue',id: 12 }], 
       "selected": {name: 'Blue',id: 12 } 
      } 
     ];  
} 

Répondre

3

Essayez ceci:

<select ng-model="product.selected" ng-options="color.name for color in product.color track by color.id"></select> 
+0

ça marche Vous pouvez m'expliquer comment cela fonctionne ???? –

+1

Avec l'expression "suivi par", vous pouvez demander à angular d'utiliser la propriété "id" afin de considérer deux objets équivalents au lieu d'utiliser l'égalité d'objet. – ppa

Questions connexes