CrazzyMarc
CrazzyMarc

Reputation: 33

ngRepeat based on the selection

I want to change the number of elements to the number given by a select box. My code:

index.php

<select class="form-control-static" ng-model="fieldSelect" ng-change="showSelectValue(fieldSelect)">
    <option ng-repeat="i in getNumber(number) track by $index" value="{{$index+1}}">{{$index+1}}</option>
</select>

index.php

<div ng-repeat="t in getTimes(1) track by $index")>
    Hello!
</div>

default.js

$scope.showSelectValue = function(fieldSelect) {
    contentFields = fieldSelect;
    $scope.getTimes();
};

$scope.getTimes=function(n){
    n = contentFields;
    return new Array(n);
};

Upvotes: 0

Views: 68

Answers (2)

Mohit Tanwani
Mohit Tanwani

Reputation: 6628

Try this working example.

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

myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.getTimes=function(n){
   // Parse the value to int
   return new Array(parseInt(n));
};
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="GreetingController">
<select class="form-control-static" ng-model="fieldSelect" ng-init="fieldSelect=1">
    <option ng-repeat="i in [1,2,3,4,5] track by $index" value="{{$index+1}}">{{$index+1}}</option>
</select>
  
<div ng-repeat="t in getTimes(fieldSelect) track by $index")>
    Hello! {{$index}}
</div>
</div>

Upvotes: 3

jaguwalapratik
jaguwalapratik

Reputation: 406

In your html

<div ng-repeat="t in getTimes({{fieldSelect}}) track by $index")>
   Hello!
</div>

In your function

$scope.getTimes=function(n){
   // Parse the value to int
   return new Array(parseInt(n));
};

Upvotes: 0

Related Questions