У меня есть следующий код, который показывает мне серию часов с 07 до 22. Я хочу знать, как получить значение выбранного часа в моем контроллере и можно ли распечатать его в предупреждении.
HTML-представление
<div ng-controller="MyCtrl">
<div class="item item-divider item-positive item-text-wrap">
HORA INGRESO
</div>
<div class="row">
<div class="col .col-50">
<div class="item item-input item-select">
<div class="input-label">HH</div>
<select ng-model="data.hih" ng-init="data.hih=horas[0]" ng-options="hih.hora for hih in horas">
</select>
</div>
</div>
</div>
<a class="button button-block icon-left ion-ios-compose button-balanced"
ng-click="crearTutoria()">
Crear Tutoría
</a>
</div>
Контроллер
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.horas = [];
for(var i=7;i<=22;i++){
if(i<10){
$scope.iconcatenado='0'+i;
$scope.horas.push({hora:$scope.iconcatenado});
}else{
$scope.horas.push({hora:i});
}
}
$scope.data = {};
//9.1 hace referencia al data de CrearTutoria.html
$scope.crearTutoria=function(){
alert($scope.data.hih)//esto me muestra [Object:Object]
alert(JSON.stringify($scope.data.hih))// me imprime hora:07 y lo que solo quiero obtener es 07 o el cualquier valor seleccionado
}
}
Вы должны изменить свое выражение
ng-options
этогок этому
Это может быть немного запутанным для понимания, поэтому я сломаю это для вас.
Я использую синтаксис
select as label for value in array
вместоlabel for value in array
потому что согласно документацииПеревод этого заключается в том, что он
ng-options
всегда будет выбирать указанный объект (у вас есть массив объектов ), если не указано иное.Вот когда в игру вступает другой синтаксис. Различные части
select as label for value in array
среднегоselect
: это выражение, которое будет оцениваться и назначаться ng-модели при выборе параметра (эквивалентно атрибутуvalue
элемента<option>
, для этого типа выражения назначается индекс массива).label
: это выражение, которое будет оцениваться и отображаться в каждом из элементов<option>
при развертыванииselect
(текстовое содержимое внутри элементаoption
) .value
: переменная, представляющая каждый элемент коллекции.array
: коллекция, которую вы повторяетеВыражение, которое я вам дал,
hih.hora as hih.hora for hih in horas
означает вкратцеДумаю, так проще понять. Здесь я оставляю вам рабочую демонстрацию