2016-03-19 10 views
0

In diesem Code unten möchte ich in der Lage sein, die Länge meines Menüs dynamisch mit Angular Data Binding zu machen, indem Sie es in die Eingabe aufnehmen und es in Echtzeit bekommen. Verwenden von Angular-Modell als Funktionsparameter

<div ng-app="myApp" ng-controller="namesCtrl"> 

<p>Number of characters : <input type="number" ng-model="nmba" ></p> 
    <ul> 
     <li ng-repeat="x in chars track by $index"> 
      {{ x}} 
     </li> 
    </ul> 
</div> 

<script> 
angular.module('myApp', []).controller('namesCtrl', function($scope) { 

function printCharacters(param) { 
    var result = []; 
    for (i = 1; i <= param; i++) { 
    result.push('a'); 
} 
return result; 
} 
$scope.chars = printCharacters($scope.nmba); 
}); 
</script> 

Also schrieb ich es wie oben, aber es wird nichts angezeigt wird. Fehle ich etwas?

Vielen Dank für jede Hilfe.

+1

scheint für mich arbeiten [hier] (I nur Zeichen auf Änderung des Eingangs Aktualisierung) (http://plnkr.co/edit/ lS9NHKGa5INpOzhhFAWw? p = Vorschau), aber habe deine Logik nicht verstanden .. –

+0

Danke @Pankaj, du hast mich gerettet, mir fehlte der onChange(), danke – GB11

+0

froh, das zu wissen .. danke :-) –

Antwort

0

Dies ist becuse printCharacters nur auf Controller init aufgerufen und an diesem Punkt $scope.nmba =""

Sie müssen in Eingabefeld dieses func auf jede Änderung nennen.

<input type="number" ng-model="nmba" ng-change="printCharacters(nmba)"> 

Darüber hinaus müssen Sie printCharacters auf $ Umfang belichten

$scope.printCharacters = function(nbma){} 
+0

Danke @Elhay, ja, ich habe die Veränderung vergessen - wie Pankaj vorgeschlagen hat. – GB11

Verwandte Themen