Hé, j'ai un problème avec la valeur par défaut définie dans le problème de sélection lorsque je définis des objets de tableau à l'intérieur. Comment puis-je résoudre ce problème?

HTML

<div ng-app="select" ng-controller="checking">
  <select ng-model="lala" ng-options="item.name for item in arrayName">
  </select>
</div>

JavaScript

var app = angular.module('select', []);

app.controller('checking', ($scope)=> {
  $scope.arrayName = [{'name':'first'}, {'name':'second'}, {'name':'third'}]; 
  $scope.lala = "first";
});

https://codepen.io/Turqus/pen/EbvGzv?editors=1111

1
Aneta Jabłońska 15 nov. 2017 à 14:51

4 réponses

Meilleure réponse

Il vous suffit de modifier votre ng-options pour inclure un select as

<select ng-model="lala" ng-options="item.name as item.name for item in arrayName">
var app = angular.module('select', []);

app.controller('checking', function($scope) {
  $scope.arrayName = [{
    'name': 'first'
  }, {
    'name': 'second'
  }, {
    'name': 'third'
  }];

  $scope.lala = 'first';

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="select" ng-controller="checking">

  <select ng-model="lala" ng-options="item.name as item.name for item in arrayName"></select>
  
  <p>Value of lala: <b>{{lala}}</b></p>
  
</div>
1
George 15 nov. 2017 à 12:12

Vous pouvez essayer ci-dessous l'exemple vous devez changer le bit de tableau

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
    <select ng-model="prop.value" ng-options="v for v in prop.values">
    </select>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) 
{
    $scope.prop = 
    {
        "type": "select", 
        "name": "Service",
        "value": "first", 
        "values": ['first','second','third'] 
    };
});
</script>
1
Paresh Gami 15 nov. 2017 à 12:05

Je pense que vous avez juste besoin d'assigner le ng-model comme ça.

 $scope.lala = $scope.arrayName[0];

Voici votre lien de codepen

0
thanveer pu 15 nov. 2017 à 13:43

Eh bien, vous pouvez y parvenir en utilisant ng-init comme ci-dessous

<div ng-app="select" ng-controller="checking">

  <select ng-init="lala = arrayName[0]" ng-model="lala" ng-options="item.name for item in arrayName"  >


  </select>
</div>

<script>
    var app = angular.module('select', []);

    app.controller('checking', ($scope)=> {
      $scope.arrayName = [{'name':'first'}, {'name':'second'}, {'name':'third'}]; 
      $scope.lala = "first";
    });
<script>

Voici l'exemple de codepen et j'espère qu'il vous aidera.

0
muaaz 15 nov. 2017 à 12:07
47306691