Мне интересно, как я могу использовать 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"}]
Заранее спасибо.
Когда вы получаете свои данные, вы можете запустить их один раз и создать необходимую структуру модели.
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>
Поместите еще один поле ввода:
<input type="text" ng-show="querySelect.match('between')" ng-model="queryParaInputBetween">
querySelect
дляparameter
word и создавать входы, зависит от результата