2015-08-20 2 views
0

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

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

[{ "form_input_id": "1", "form_id": "6", "название": "Пожалуйста, введите ваш номер?", "Input_type": «текст», «идентификатор»: «номер», «выбор»: «s: 0: \« \ »;», «заголовок»: «Запрос валет»}, {"form_input_id": "2", "form_id" : «6», «title»: «Пожалуйста, введите любые комментарии или отзывы», «input_type»: «textarea», «identifer»: «обратная связь», «выбор»: «s: 0: \" \ ";" , «заголовок»: «Запрос валета»}, {«form_input_id»: «3», «form_id»: «6», «title»: «Пожалуйста, выберите офис», «input_type»: «select», «identifer»: «office», «choice»: «s: 19: \« Sales, Reservations \ »;», «heading»: «Valet Request»}, {«form_input_id»: «18», «form_id»: «6», «title»: «Last Name», «input_type»: «text», «identifer»: «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 \"; "," heading ":" Valet Request "}]

Я могу тянуть все так, как хочу, кроме выборов. Я пытаюсь создать динамические формы и вам нужно создать выбор, показывающий варианты.

Мой текущий контроллер:

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

где нг-модель для форм входов? – atinder

+0

Название здесь вводит в заблуждение; это не имеет ничего общего с ng-repeat. Я обновил это с более подходящим названием. Кроме того, эта логика, вероятно, в основном работает, но это тяжелое использование «ng-if» немного замедлит вашу страницу, а использование «ng-model» также может вызвать проблемы. Это определенно не самый эффективный способ выполнить вашу задачу с помощью углового. – Claies

ответ

0

Вам необходимо проанализировать параметры из строки. Нечто подобное:

angular.forEach($scope.forms, function(item){ 
    item.options=item.choices.split('"')[1].split(','); 
}); 

и использовать tnen нг-варианты в выберите:

<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

Спасибо за помощь. Я использовал угловые диноды для проекта. – Jeremiah

Смежные вопросы