获取从SelectBox Angularjs中选择的值

时间:2016-08-23 15:43:37

标签: javascript angularjs

我是Angularjs的新手,我的selectBox包含两个变量(startDate和endDate):

    <div>
      <select class="form-control" ng-model="date.time">
        <option ng-repeat="time in dateList" value="{{time.startDate}},{{time.endDate}}" >
         {{time.startDate| date:'medium'}} - {{time.endDate | date:'medium'}}</option>
     </select>
    </div>

用户选择一段时间后,我想分别获取startDate和endDate。

3 个答案:

答案 0 :(得分:0)

在您选择完成后,您是否尝试过查看自己的价值?您将获得放在选项value中的字符串。

var dates = $scope.date.time.split(','),
    startDate = dates[0],
    endDate = dates[1];

答案 1 :(得分:0)

使用ng-options语法,您可以将整个对象设置为date.time:

<select class="form-control" ng-model="date.time" ng-options="time as ((time.startDate | date:'medium') + ' - ' + (time.endDate | date:'medium')) for time in dateList"></select>

答案 2 :(得分:0)

您在ng模型中绑定的内容将保留所选值。

在你的情况下,ng-model持有date.time,这可能不是你想要的。

此外,您应将值设置为要从选项列表中提取的数据。

请注意这一点(构造不当且速度很快)jsFiddle

HTML

<div ng-controller="MyCtrl">
     <select class="form-control" ng-model="selected">
       <option ng-repeat="time in dateList" value="{{time}}" >
        {{time.prop}}</option>
    </select>
    {{selected}}
</div>

JS

var myApp = angular.module('myApp',[]);

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
    $scope.selected = 'plz select a thing';
    $scope.dateList = [{prop:'prop1'}, {prop:'prop2'}];
}