2016-02-10 2 views
2

У меня есть сценарий в приложении, где мне нужно запустить цикл (ng-repeat), не раз на основе параметра задавать. Для примера: -

$scope.rating = 3; 

затем запустить цикл (с использованием нг-повтор) в 3 раза.

+0

нг-повтор работы с коллекцией пункт .. пожалуйста, вы можете предоставить тот же .. мы можем поставить условие, подобное ng-if = $ index <$ scope.val, чтобы ограничить итерацию. –

+0

@NimeshKumar. Ситуация похожа на то, что на основе целочисленного значения I hve для генерации тега ввода html –

+2

дубликат http://stackoverflow.com/questions/16824853/way-to-ng-repeat-defined-number-of-times -вместо повтора-над-массивом –

ответ

1

Ниже будет код в ваш контроллер ..

$scope.rating = 3; 
$scope.getRating = function(rate) { 
    return new Array(rate); 
} 

Ниже будет ваш шаблон.

<div ng-repeat="i in getRating(rating) track by $index"> 
    <input type="text" name="txt" value="{{$index}}"/> 
</div> 
+0

Пожалуйста, отметьте ответ, если это сработает для вас .. :) –

+0

Извините! Не работает. На основе целочисленного значения мне нужно создать поля ввода. IF a = 5 затем генерирует 5 полей ввода. –

+1

Я устанавливаю ваше целочисленное значение в $ scope.rating и генерирует 3 текстовых поля. –

0

Вы можете сделать это с помощью вложенной нг-повтора, используя так:

В контроллере

var rating = [3]; 
//u can set it dynamically too {var rating = [req.body.rating]} 
//erq.body.rating is getting value from text/input box 
$scope.rating = rating; 

В HTML

<div ng-repeat = i in rating> 
    <div ng-repeat = ____></div> // this ng-repeat will run based on rating value 
</div> 
1

Я думаю, что это чище и короче путь

var app = angular.module('app', []); 
 
    
 
    app.controller('Ctrl', function($scope) { 
 

 
     $scope.counter = 2; 
 
     $scope.generateFields = function(count) { 
 
     return new Array(count); 
 
     } 
 
     
 

 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="Ctrl"> 
 
    
 
    Insert Number To Generate Fields: 
 
    <input type='number' ng-model='counter'/> 
 
    <hr> 
 
    <div ng-repeat="i in generateFields(counter) track by $index"> 
 
    <input type="text" name="txt" value="Input Field {{$index}}"/> 
 
</div> 
 
</div>

+0

Это не то, что я хочу. На основе целочисленного значения мне нужно создать поля ввода. IF a = 5 затем генерирует 5 полей ввода. –

+0

просто просмотрите обновленный anser и запустите код теперь, его динамически генерирующие поля ввода с введенными данными –

Смежные вопросы