2015-08-05 4 views
1

Я хочу, чтобы иметь простой выбор:Получить выбранный вариант динамического угловыми выпадающего списка

<ion-view view-title="fc" id="fcs"> 
    <ion-content> 

    <div id="params-container"> 

     <select ng-model="value1" ng-options="value for value in params1 track by value" ng-change="update()"></select> 

    </div> 
    </ion-content> 
</ion-view> 

И в контроллере:

angular.module('filedetails.controller', []) 


.controller('FileDetailsCtrl', function($scope, $stateParams, FilesService, ProcessFileService, FCSModel) { 

     $scope.params1 = ["FSC-A", "FSC-H", "FSC-W", "SSC-A"]; 

     $scope.update = function(){ 
      console.log('scope.axisX is'); 
      console.log($scope.axisX); 
     } 

}); 

И в app.js у меня есть:

.state('file-detail', { 
    url: '/files/:id', 
    templateUrl: 'js/files/details/template.html', 
    controller: 'FileDetailsCtrl' 
}) 

Я хочу получить выбранное значение, но как-то, когда я выбираю значение в выпадающем меню, он всегда выводит undefined. Что я могу делать неправильно? Im использует AngularJS v1.3.13.

ответ

0

Вы должны сделать это так:

<select ng-model="axisX" ng-options="value as value for value in params1" ng-change="update()"></select> 

или как это:

<select ng-model="axisX" ng-options="value for value in params1 track by value" ng-change="update()"></select> 

С первым подходом вы получите:

<option value="0">FSC-A</option> 
<option value="1">FSC-H</option> 

С второго подхода вы получите :

<option value="FSC-A">FSC-A</option> 
    <option value="FSC-H">FSC-H</option> 

Здесь работает plunker

+0

Thats все еще не работает. Я создал jsfiddle, и он действительно работает, как и у меня. Но как-то в моем приложении, я получаю неопределенный, как если бы ось X не была частью области. Тем не менее params1 является частью области. Это очень странно – Mark

+0

Я отредактировал свой ответ, см. Включенный плункер – Tomislav

+0

Марк, вы обернули свой выбор в правильном ng-контроллере? – Tomislav

0

Я предполагаю, что ваша установка не так. Ваш код работает на jsfiddle, по крайней мере, как только я добавлю тег ng-controller: https://jsfiddle.net/wg5dtb8o/

<div ng-controller="MyCtrl"> 
<select ng-options="value for value in params1" ng-model="axisX" ng-change="update()"></select> 
</div> 
Смежные вопросы