web-dev-qa-db-fra.com

setting Angular select ng-init to first value in array

J'ai un élément de sélection simple que j'essaie d'imposer une valeur présente pour soumettre le formulaire et j'ai essayé à la fois de définir l'attribut requis ainsi que d'utiliser ng-init pour m'assurer qu'une valeur est sélectionnée et que les deux échouent.

J'utilise ng-options pour créer une liste de valeurs à partir d'un tableau d'objets ayant une propriété ref. Ensuite, je voudrais utiliser ng-init pour définir la valeur affichée sur le premier Object.ref du tableau.

<select name="refmarker" class="input-block-level form-width-adjust" ng-model="model.refmarker" ng-options="rm.ref for rm in refmarkers" ng-disabled="editable" ng-init="model.refmarker='refmarkers[0].ref'" required></select>

J'ai essayé ce qui suit sans aucune chance

ng-init="model.refmarker='refmarkers[0]'"
ng-init="model.refmarker='refmarkers[0].ref'"
ng-init="model.refmarker='rm.ref'"

De plus, l'attribut required ne fonctionne pas? Le angular élément select buggy ou est-ce que je fais quelque chose de mal?

12
simplesthing

requis ne fonctionnera que dans un élément de formulaire.

Ce que vous voulez, c'est ng-init = "model.refmarker = refmarkers [0]"

<!doctype html>
<html lang="en" data-ng-app="app">
<head>
    <meta charset="utf-8">
    <title>Test</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js"></script>
    <script type="text/javascript">

        angular.module('app',[])
                .controller('Main',function($scope)
                {
                    $scope.model = {};
                    $scope.refmarkers = [{ref:'abc'},{ref:'def'},{ref:'ghi'}];
                });
    </script>
</head>
<body ng-controller="Main">
{{'Angular'}}
<select ng-model="model.refmarker" ng-options="rm.ref for rm in refmarkers" ng-init="model.refmarker=refmarkers[0]"></select>
{{model.refmarker}}
</body>
</html>
23
Noishe