Я беру информацию из своей базы данных и пытаюсь найти лучший способ ее отображения в приложении.
Это моя информация о базе данных
[{"form_input_id": "1", "form_id": "6", "title": "Пожалуйста, введите номер вашей комнаты?", "input_type": "текст", "идентификатор": "номер", "выбор",: "s: 0: \"\";", "heading": "Valet Request"}, {"form_input_id": "2", "form_id": "6", "title": "Пожалуйста, введите любые комментарии или обратная связь "," input_type ":" textarea "," identifer ":" обратная связь "," выборы ":" s: 0:\"\"; "," heading ":" Valet Request "}, {" form_input_id ": "3", "form_id": "6", "title": "Пожалуйста, выберите офис", "input_type": "select", "identifer": "office", "choice": "s: 19: \" Продажи, бронирование \";", "заголовок": "Запрос валет"}, {"form_input_id": "18", "form_id": "6", "title": "Фамилия", "input_type": "text "," идентификатор ":" Last_Name "," choice ":" s: 0:\"\"; "," heading ":" Valet Request "}, {" form_input_id ":" 19 "," form_id ":" 6 "," title ":" Тип автомобиля "," input_type ":" select "," identifer ":" Car_type "," choice ":" s: 20:\"Buick, Olds, Ferrari \"; ", "заголовок": "Запрос валет"}]
Я могу тянуть все так, как хочу, кроме выборов. Я пытаюсь создать динамические формы и вам нужно создать выбор, показывающий варианты.
Мой текущий контроллер:
controller('FormCtrl', function($scope, $ionicLoading){
// Grab Form
var form = angular.fromJson(window.localStorage.getItem('form'));
// Set Title
$scope.title = form[0].heading;
// Send Form Data
$scope.forms = form;
})
И мое мнение:
<ion-view title="Form" hide-nav-bar="true">
<ion-header-bar align-title="left" class="bar-dark">
<div class="buttons">
<a href="#/lobby" class="button button-dark">Cancel</a>
</div>
</ion-header-bar>
<ion-content id="dynamic" scroll="true" padding="true">
<h2 class="text-center">{{title}}</h2>
<form>
<div ng-repeat="form in forms">
<label>{{form.title}}</label>
<div ng-if="form.input_type == 'text'">
<input type="text" name="{{form.identifier}}" />
</div>
<div ng-if="form.input_type == 'time'">
<input type="time" name="{{form.identifier}}" />
</div>
<div ng-if="form.input_type == 'textarea'">
<textarea name="{{form.identifier}}"></textarea>
</div>
<div ng-if="form.input_type == 'select'">
<select name="{{form.identifier}}">
NEED TO FIGURE HOW TO DISPLAY CHOICES AS OPTIONS
</select>
</div>
</div>
</form>
</ion-content>
Вам нужно проанализировать свои параметры из строки. Что-то вроде того:
angular.forEach($scope.forms, function(item){
item.options=item.choices.split('"')[1].split(',');
});
И используйте ng-options в select:
<select name="{{form.identifier}}" ng-options="choice for choice in form.options" ng-model="Your model here"></select>
ng-if
немного замедлит вашу страницу, иng-model
может вызвать проблемы. Это определенно не самый эффективный способ решения вашей задачи с использованием угловых.