AngularJS of-repeat создает ввод

0

Мне интересно, как я могу использовать ng-repeat с элементами input. У меня есть option select которой есть некоторые option запросов, всякий раз, когда я выбираю запрос, я хотел бы проверить, есть ли один или несколько параметров, необходимых для ввода. В некоторых запросах необходимо ввести два параметра, как я могу найти параметр слова и создавать входы, зависит от результата, который я нашел.

Это мой выбор:

<select ng-model="querySelect" ng-options="item.query as item.queryName for item in queries"></select>

и это мой вклад:

<input type="text" ng-show="querySelect.match('parameter')" ng-model="queryParaInput">

Мой массив:

"queries":[
 {"queryName":"View all meals","query":"select * from meal"},
 {"queryName":"Meal price more than","query":"select * from meal where price > parameter"},
 {"queryName":"Meal price between","query":"select * from meal where price  between parameter and parameter"}]

Заранее спасибо.

2 ответа

0

Когда вы получаете свои данные, вы можете запустить их один раз и создать необходимую структуру модели.

angular.module('test', [])

.controller('Test', function($scope) {
  $scope.data = [{
    "queryName": "View all meals",
    "query": "select * from meal"
  }, {
    "queryName": "Meal price more than",
    "query": "select * from meal where price > parameter"
  }, {
    "queryName": "Meal price between",
    "query": "select * from meal where price  between parameter and parameter"
  }];

  angular.forEach($scope.data, function(value) {
    var count = value.query.split('parameter').length - 1; // this is just one of the way of counting how many times 'parameter' has occurred in the string

    value.param = [];
    for (i = 0; i < count; i++) {
      value.param.push(""); // init each parameter model to empty string
    }
  });
});
<script src="/angular.min.js"></script>

<div ng-app='test' ng-controller="Test">
  <div ng-repeat="query in data">
    {{query.query}}
    <div ng-repeat="param in query.param track by $index">
      Param {{$index + 1}}:
      <input type="text" ng-model="param">
    </div>
  </div>
</div>
0

Поместите еще один поле ввода:

<input type="text" ng-show="querySelect.match('between')" ng-model="queryParaInputBetween">
  • 0
    Как я могу искать в querySelect для parameter word и создавать входы, зависит от результата
  • 0
    установить другую модель. Доступ к нему осуществляется с помощью $ scope.queryParaInputBetween
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню