нг-повторить несколько значений

Предположим, у меня есть:

Columns - массив объекта Column = {name, tipo}

<div ng-repeat="column in columns"> => esto iterara 4 veces por ejm:
 <input type="checkbox" ng-model=""/>
 <select>
        <option value="mayor">Mayor que</option>
        <option value="menor">Menor que</option>
 </select>
 <input type="text" ng-model=""/>
</div>
<input type="button" ng-click="getValues()" />

Как я могу получить значения только тех, которые check помечены?, То есть, если это повторяется 4 раза, и я проверил только второе и четвертое, и у них есть значения check, select и text каждого? », Возможно ли это?

0
задан 20.01.2017, 23:54
3 ответа

Я изменил sgte, - aГ±adido в драйвер array, и tb each:

<div ng-repeat="column in columns"> => esto iterara 4 veces por ejm:
 <input type="checkbox" value="{{column.field}}" ng-value="column.field" 
 ng-model="modelo_dinamico[column.type]"/>
 <select>
    <option value="mayor">Mayor que</option>
    <option value="menor">Menor que</option>
 </select>
 <input type="text" ng-model=""/>
</div>
<input type="button" ng-click="getValues()" />

и в index.html я имею:

Показывать стоимость: {{modelo_dinamico}} =>: "[]", если я звоню в функцию getValues, совсем не мне кажется результат.

, Но я не только хочу стоимость checkbox, а tb q он будет считать присоединенным select и неудар в лунку text.

Следовательно, для того, чтобы оно функционировало, я был должен делать это:

$ scope.modelo_dinamico = { };

<input type="checkbox" value="{{column.field}}" ng-value="column.field" ng-model="modelo_dinamico[column.field].check"/>
<input type="text" ng-model="modelo_dinamico[column.field].text"/>

и это уже дает мне:

modelo_dinamico: { {пойдите": { {check": true }, "имя": { {check": true, "select": "больше", "text": "66" }, я "оцениваю": { {check": true, "text": "77", "select": "несовершеннолетний" }, "количество": { {check": false } }

0
ответ дан 24.11.2019, 11:55
  • 1
    я работаю в этом, чтобы помогать тебе для всех полей, едва имейте это я обновляю! – sioesi 21.12.2016, 15:59
  • 2
    @sioesi уже это у меня есть, это solució n, я это объясняю ниже. – sirdaiz 21.12.2016, 16:00
  • 3
    Хосе, обновил @Jose – sioesi 21.12.2016, 16:21

может быть, делая array с с объектами ej:

var list=[ {id:0,name:'mayor'}, {id:1,name:'medio mayor'}, {id:2,name:'medio menor'}, {id:3,name:'menor'} ];

потом:

<div ng-repeat="l in list"> <input type="checkbox" ng-model=""/> <select> <option value="l.id">{{l.name}}</option> </select> <input type="text" ng-model=""/> </div> <input type="button" ng-click="getValues()" />

Потом ты даешь button функцию, которая проверяла бы check box, которые с checked.

Также я оставляю тебе это соединение, которое они делают немного похожим, хотя гораздо красивее:

https://stackoverflow.com / questions / 14474671/angular-ng-repeat-checkbox-from-resource-and-set-checked

0
ответ дан 24.11.2019, 11:55

в настоящее время в angularjs не вынесен ng-models динамических (как это твой случай), то, что я рекомендую сформировываться, состоит в твоем драйвере в том, чтобы определять пустую договоренность:

$scope.modelo_dinamico = [];

Пробегать твою договоренность объектов Column

angular.forEach($scope.columns, function(columna, index){
    $scope.modelo_dinamico[columna.tipo] = "";
})

Ле Дандо в пустую договоренность, которых мы признаем index, которые единственные, так как они равны id твоих колонн, если ты печатаешь эту стоимость, осталось бы

tipo_1 : "",
tipo_2 : "",
tipo_3 : ""

Предполагая, что типы - tipo_1, tipo_2 и tipo_3.

В виде просто ты даешь твоему этому контролю ng-model

<div ng-repeat="column in columns"> => esto iterara 4 veces por ejm:
    <input type="checkbox" ng-model="modelo_dinamico[column.tipo]" />
    <select>
        <option value="mayor">Mayor que</option>
        <option value="menor">Menor que</option>
    </select>
    <input type="text" ng-model="" />
</div>
<input type="button" ng-click="getValues()" />

И чтобы получать стоимость всех checkboxs, но видеть, которые пошли checkeados, или не можешь:

$scope.getValues = function(){
   console.log($scope.modelo_dinamico);
}

Это возвратится:

tipo_1 : false,
tipo_2 : true,
tipo_3 : true

РЕДАКТИРОВАНИЕ

Как в этом случае их больше inputs, которые должны приносить динамические модели, это мочь быть так:

$scope.modelo_dinamico = [];
$scope.objeto = {'tipo' : '', checkbox : '' , select : '', input : ''};
angular.forEach($scope.columns, function(columna, index){
     $scope.objeto.tipo = columna.tipo;
     $scope.objeto.checkbox = true;
     $scope.objeto.select = "menor";
     $scope.objeto.input = "Hola";
     $scope.modelo_dinamico[index] = $scope.objeto;
     $scope.objeto = {};
});

, Которые я делаю здесь? Помимо определения договоренности он опустошил, я определяю ТИП ОБЪЕКТА, который содержит все inputs, которые я хочу добавить dinamicamente. В этом случае один <checkbox>, <select> и один <input>. Вї, Из-за которых стоимость index? , Простой, я увидел в твоем примере, что из-за каждой информации, которую ты изменяешь, добавляют, что objecto {} со стоимостью мы ранее издаем, с index создается единственный объект каждым элементом, который повторяется (с твоим форматом)

Я Пробегаю договоренность и даю ему стандартную настройку (это могла бы быть пустота, если ты так это хочешь), И в виде я показываю их так:

<div ng-repeat="column in columns">
    <input type="checkbox" ng-model="modelo_dinamico[$index].checkbox" />
    <select ng-model="modelo_dinamico[$index].select">
        <option value="mayor">Mayor que</option>
        <option value="menor">Menor que</option>
    </select>
    <input type="text" ng-model="modelo_dinamico[$index].input" />
</div>
<input type="button" ng-click="getValues()" />
</body>

Функция getValues()

$scope.getValues = function(){
   console.log($scope.modelo_dinamico);
}

Это напечатает:

Array[4] :
   0 : Object
      checkbox : true,
      input : "Hola",
      select : "menor",
      tipo : "tipo_1"
   1 : Object
      checkbox : false,
      input : "Texto de cambio",
      select : "mayor",
      tipo : "tipo_2"
   2 : Object
      checkbox : false,
      input : "Texto de cambio 2",
      select : "menor",
      tipo : "tipo_3"
   3 : Object
      checkbox : true,
      input : "Sin texto",
      select : "menor",
      tipo : "tipo_4"

angular.module('mySuperApp', [])
.controller('PopupCtrl',function($scope) {
  $scope.columns = [
      {name : 'Columna 1', tipo : 'tipo_1'},
      {name : 'Columna 2', tipo : 'tipo_2'},
      {name : 'Columna 3', tipo : 'tipo_3'},
      {name : 'Columna 4', tipo : 'tipo_4'}
  ];
  
  $scope.modelo_dinamico = [];
  $scope.objeto = {'tipo' : '', checkbox : '' , select : '', input : ''};
  angular.forEach($scope.columns, function(columna, index){
     $scope.objeto.tipo = columna.tipo;
     $scope.objeto.checkbox = true;
     $scope.objeto.select = "menor";
     $scope.objeto.input = "Hola";
     $scope.modelo_dinamico[index] = $scope.objeto;
     $scope.objeto = {};
  });
  
  $scope.getValues = function(){
    console.log($scope.modelo_dinamico);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html ng-app="mySuperApp">
  <head>
    <meta charset="utf-8">
    <title>
      Popups
    </title>
    
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    
    <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet">
    <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script>
    
  </head>
  <body class="padding" ng-controller="PopupCtrl">
   <div ng-repeat="column in columns">
   <input type="checkbox" ng-model="modelo_dinamico[$index].checkbox"/>
   <select ng-model="modelo_dinamico[$index].select">
          <option value="mayor">Mayor que</option>
          <option value="menor">Menor que</option>
   </select>
   <input type="text" ng-model="modelo_dinamico[$index].input"/>
  </div>
    <input type="button" ng-click="getValues()" /><br><br>
    {{modelo_dinamico | json}}
  </body>
</html>

оставил Тебе codepen для того, чтобы ты это увидел функционируя.

0
ответ дан 24.11.2019, 11:55