Как создать динамический список выбора из строки, разделенной запятыми?

0

Я беру информацию из своей базы данных и пытаюсь найти лучший способ ее отображения в приложении.

Это моя информация о базе данных

[{"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>
  • 0
    Где NG-модель для ввода формы?
  • 0
    Название здесь вводит в заблуждение; это не имеет никакого отношения к ng-repeat. Я обновил это с более подходящим названием. Кроме того, эта логика, вероятно, в основном работает, но такое интенсивное использование ng-if немного замедлит вашу страницу, и ng-model может вызвать проблемы. Это определенно не самый эффективный способ решения вашей задачи с использованием угловых.
Теги:
ionic-framework
ionic

1 ответ

0

Вам нужно проанализировать свои параметры из строки. Что-то вроде того:

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>

https://docs.angularjs.org/api/ng/directive/ngOptions

  • 0
    Спасибо за помощь, я использовал angular-dynforms для проекта.

Ещё вопросы

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