2016-04-27 31 views
0

Ich habe eine select, die eine myCoef als float Wert verfolgen sollte (kein Objekt, sondern ein Float-Wert).Initialisiere eine Auswahl in AngularJs

Ich habe den folgenden Code (CodePen HERE):

function theController($scope) { 
 
    
 
    $scope.coefs = [ 
 
    {name:'mm', val:1/1000}, 
 
    {name:'cm', val:1/100}, 
 
    {name:'m', val:1} 
 
    ]; 
 

 
    $scope.myCoef = 1/100; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"> 
 
</script> 
 

 
<body ng-app> 
 
    
 
    <div ng-controller="theController"> 
 
    
 
    <select ng-model="myCoef" 
 
      ng-options="coef.name for coef in coefs track by coef.val"> 
 
    </select>{{myCoef}} 
 
    </div> 
 
</body>

Wie richtig ich meine initialisieren select, um einen Float-Wert in myCoef zu halten?

+0

{{myCoef.val}}? – Sajal

+0

Ich möchte myCoef als ** float ** Wert haben, kein Objekt. – Serge

Antwort

1

Verwenden Sie als Syntax und entfernen Sie Track durch.

PS: Wenn jemand weiß, warum ich Track entfernen muss, kann er meine Antwort bearbeiten, weil ich nicht wirklich weiß warum.

function theController($scope) { 
 
    
 
    $scope.coefs = [ 
 
    {name:'mm', val:1/1000}, 
 
    {name:'cm', val:1/100}, 
 
    {name:'m', val:1} 
 
    ]; 
 

 
    $scope.myCoef = 1/100; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"> 
 
</script> 
 

 
<body ng-app> 
 
    
 
    <div ng-controller="theController"> 
 
    
 
    <select ng-model="myCoef" 
 
      ng-options="coef.val as coef.name for coef in coefs"> 
 
    </select>{{myCoef}} 
 
    </div> 
 
</body>

+0

aber die Auswahl wird nicht korrekt mit dem "cm" -Wert initialisiert ... – Serge

+0

Seltsam .. ich hinzufügen, um die Spur zu entfernen, um es funktioniert zu haben ... Überprüfen Sie meine bearbeitete Antwort – Walfrat

+0

super! Ich verstehe diese Syntax nicht wirklich, aber sie scheint zu funktionieren! Sie können die Incorrect zuerst jetzt bearbeiten;) – Serge

0

Ein wenig seltsam Syntax. Nach der Walfrat answer, Beispiele, wie durch Val init, oder durch den Anfangswert Name (ohne über $scope.myCoef = $scope.coefs[1] Syntax vorbei)

function theController($scope) { 
 
    
 
    $scope.coefs = [ 
 
    {name:'mm', val:1/1000}, 
 
    {name:'cm', val:1/100}, 
 
    {name: 'm', val:1} 
 
    ]; 
 
    $scope.myCoefVal = 1/1000; 
 
    $scope.myCoefName = 'cm'; 
 
}
<body ng-app> 
 
    <div ng-controller="theController"> 
 
    Init by value - myCoefVal=1/100 <br> 
 
    <select ng-model="myCoefVal" 
 
      ng-options="coef.val as coef.name for coef in coefs"> 
 
    </select><br> 
 
    now myCoefVal={{myCoefVal}} 
 
    <br/><br/> 
 
    Init by name - myCoefName='cm'<br> 
 
    <select ng-model="myCoefName" 
 
      ng-options="coef.name as coef.name for coef in coefs"> 
 
    </select><br> 
 
    now myCoefName='{{myCoefName}}' 
 
    </div> 
 
</body>

Verwandte Themen