Я делаю заявку ионным и работаю вместе с сервером Laravel. Проблема в том, что у меня есть список предметов, хранящихся на моем сервере. В ионном приложении я запрошу информацию о элементах с сервера, чтобы создать форму. У меня есть код здесь,
<div ng-repeat="itemGroup in mydata">
<div class="item item-divider nn-card-header">
{{itemGroup.name}}
</div>
<ion-list>
<ion-item ng-repeat="item in itemGroup.items">
<h3>{{ item.name }}</h3>
<div class="item range range-positive">
broken
<input type="range" id="{{ item.idgB }}" min="0" max="{{ item.max }}" ng-model="item.idgB" ng-init="item.idgB=0">
{{ item.idgB }}
</div>
<div class="item range range-positive">
missing
<input type="range" id="{{ item.idgM }}" name="volume" min="0" max="{{ item.max }}" ng-model="item.idgM" ng-init="item.idgM=0">
{{ item.idgM }}
</div>
</ion-item>
</ion-list>
</div>
что mydata
- это данные json:
[{
"name":"name",
"items":[{
"id":1,
"name":"itemA",
"max":2,
"idgM":"m.3.1.1",
"idgB":"b.3.1.1"
}]
}]
Мой вопрос: я не знаю, как получить значение из ввода, потому что я не могу использовать jquery для поиска элемента. У меня есть идея, что я отправлю список всех уникальных идентификаторов элементов с сервера на приложение. Но я не знаю, как получить данные ng-model
с помощью строковой переменной.
Вам не нужно jQuery для получения значения из ввода, у вас есть массив объектов, которые вы зацикливаете:
itemGroup.items
и в вашем коде вы связываете каждый объект этого массива с:
ng-repeat="item in itemGroup.items"
ng-model="item.idgB"
ng-model="item.idgM
то я ожидаю, что эти значения idgB
idgM
свойства idgB
и idgM
каждого элемента вашего массива itemGroup.items
но поскольку вы используете:
ng-repeat="itemGroup in mydata"
сами элементы itemGroup (s) являются элементами массива mydata
, а затем в вашем контроллере для доступа к этим входным данным вы должны иметь что-то вроде этого:
angular.forEach(mydata, function(itemGroup, key) {
angular.forEach(itemGroup, function(item, key) {
console.log("First input value: " + item.idgB);
console.log("Second input value: " + item.idgM);
});
});
Я думаю, на вопрос здесь уже был дан ответ: Как создать массив с ng-моделью AngularJS.
Если у вас есть какие-либо вопросы о том, если, не стесняйтесь спрашивать в комментариях
Значение из ввода хранится в модели, поэтому вам не нужно искать элемент, вы уже используете привязку.
Вот помощь по использованию ввода в угловом формате: https://docs.angularjs.org/api/ng/directive/input
$scope.name
пока у меня естьname
в качестве строковой переменной.