Как передать значение поля метки выбора или выделенный текст в аргумент функции

0

Мое требование - получить выбранный вариант и обновить div. Я смоделировал свое требование в приведенном ниже коде.

Я должен позволить пользователю выбрать только конец месяцев между startDate и endDate (я сделал эту часть в коде ниже). Но я не мог обновить дату с выбранной датой. Я мог получить доступ только к атрибуту "значение" в методе Not label или text.

http://jsfiddle.net/priyaa2002/xpcbounr/3/

<div ng-app="myApp">
   <div ng-controller="DateCtrl">
      <div class="edit__table__field"><p>{{myEnrollment.coverageEndDate}}</p></div>
         <select ng-model="myEnrollment.coverageEndDate" ng-options="value as coverageEndDate for (value, coverageEndDate) in
        terminationDates"
        ng-change="newTerminationDate(myEnrollment.coverageEndDate)" >
                <option value="">Select your new Termination Date</option>
        </select>
   </div>
</div>

JS

angular.module('myApp', [])
  .controller('DateCtrl', function($scope){
  $scope.myEnrollment = {
    coverageStartDate: '01/01/2016',
    coverageEndDate: '06/01/2016'
  };

    var startDate = new Date ($scope.myEnrollment.coverageStartDate);
    var endDate = new Date ($scope.myEnrollment.coverageEndDate);

    var startMonth = startDate.getMonth();
    var endMonth = endDate.getMonth();
    var year = endDate.getFullYear();

  function convertDate(date) {
    var parts = date.toString().split(" ");
    var months = {
      Jan: "01",
      Feb: "02",
      Mar: "03",
      Apr: "04",
      May: "05",
      Jun: "06",
      Jul: "07",
      Aug: "08",
      Sep: "09",
      Oct: "10",
      Nov: "11",
      Dec: "12"
    };
    return months[parts[1]]+"/"+parts[2]+"/"+parts[3];
};


  var pickDates = endMonth - startMonth;
$scope.terminationDates = [];
for (var i=0; i < pickDates; i++){
      var lastDay = new Date(year, i + 1, 0);
        var formatedDate = convertDate(lastDay);
        $scope.terminationDates.push(formatedDate); 
}
$scope.newTerminationDate = function(coverageDate)  {
    $scope.myEnrollment.coverageDate = "hello";
}

});
  • 0
    Ваш связанный массив для опции select не содержит '06 / 01/2016 ', который передается вашей ng-модели. Поэтому по умолчанию ничего не выбрано
  • 0
    Это то, что содержит ваш массив ["31.01.2016", "29.02.2016", "31.03.2016", "30.04.2016", "31.05.2016"]
Показать ещё 7 комментариев
Теги:
ng-options
angularjs-ng-change
angularjs-ng-options

1 ответ

2
Лучший ответ

Вы можете просто сделать:

 <select ng-model="myEnrollment.coverageEndDate" ng-options="value as value for value in terminationDates" ng-change="newTerminationDate(myEnrollment.coverageEndDate)" >
        <option value="">Select your new Termination Date</option>
 </select>

Надеюсь, поможет!

Ещё вопросы

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