Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何从下拉列表中发送值?_Angularjs - Fatal编程技术网

Angularjs 如何从下拉列表中发送值?

Angularjs 如何从下拉列表中发送值?,angularjs,Angularjs,我有下拉列表: <select name="timefilter" id="timefilter"> <option value="Last week">@Translate("LAST_WEEK")</option> <option value="Last 3 days">@Translate("LAST_3_DAYS")</option> <option value="Yesterday">@Translate("Y

我有下拉列表:

<select name="timefilter" id="timefilter">
 <option value="Last week">@Translate("LAST_WEEK")</option>
<option value="Last 3 days">@Translate("LAST_3_DAYS")</option>
 <option value="Yesterday">@Translate("YESTERDAY")</option>
<option value="Today">Translate("TODAY")</option>
</select>
我怎么做

编辑:我需要调用的函数:

   $scope.SelectTicketByTime = function (range) {

    var range = range;
    var date = new Date();
    var day = date.getUTCDate().padLeft();
    var monthIndex = (date.getUTCMonth() + 1).padLeft();
    var year = date.getUTCFullYear();
    var hours = date.getUTCHours().padLeft();
    var minutes = date.getUTCMinutes().padLeft();


    $scope.GetMenuForSelectedTime = function (numberOfDays) {


        var d = new Date();
        d.toUTCString();
        day = date.getUTCDate() - numberOfDays;
        day = day.padLeft();
        var offset = d.getTimezoneOffset();
        d.setHours(00);
        var hoursToAdd = offset / 60;
        d.setHours(hoursToAdd);

        if (day > daysInMonth(monthIndex, year)) {
            var dayOffset = day - daysInMonth(monthIndex, year);
            day = dayOffset.padLeft();

            monthIndex = (date.getUTCMonth() + 2).padLeft();
        }
        var To = year + monthIndex + day + d.getHours() + '00';

        $scope.to = To;

        $http.get(TicketUrl + 'GetTickets/0/0?DateFrom=' + $scope.from + '&DateTo=' + $scope.to).
        then(RecivedTickets, ErrorResponse);
    }





    if (range == "Today") {
        $scope.GetMenuForSelectedTime(0);
    }

    else if (range == "Yesterday") {
        $scope.GetMenuForSelectedTime(1);
    }
    else if (width == "Last 3 days") {
        $scope.GetMenuForSelectedTime(3);

    }  else if (width == "Last 7 days") {
        $scope.GetMenuForSelectedTime(7);

    }

这是普特凡德回应的例子(感谢他):

编辑:控制器中的函数不需要参数中的值,因为控制器已经知道该值。你应该有这样的东西

$scope.SelectTicketByTime = function () {
    var range = $scope.selectedTime;
    var date = new Date();
    var day = date.getUTCDate().padLeft();
    var monthIndex = (date.getUTCMonth() + 1).padLeft();
    var year = date.getUTCFullYear();
    var hours = date.getUTCHours().padLeft();
    var minutes = date.getUTCMinutes().padLeft();
}

我使用
ng options
修改代码,当您更改下拉列表中的任何选项时,将触发
ng change

<select name="ruleDetails" ng-model="selectedTime" 
  ng-options="time.id as time.value for time in timeDetails" 
  ng-change="GetMenuForSelectedTime(selectedTime)">
  <option value="">-Select Time-</option>
</select>

$scope.GetMenuForSelectedTime = function(id) {
    alert(id);
};

请检查此项

ng型号
添加到您的选择中?您能举个例子吗?当我更改下拉列表时,什么都没有发生…我没有接到任何呼叫您是否尝试打印“selectedTime”?他的值是什么?没什么…它根本没有调用我的函数…我有函数$scope.SelectTicketByTime=function(range){在控制器中,范围是下拉列表中的值list@None我想展示一下它是如何在你的函数中工作的。让我们来看看。它的好例子就是,我需要在mvc中填充这个下拉列表,因为我使用@Translate函数,如果你现在明白我的意思的话?这里的问题是函数
getMenuForSelectedTime
需要一些日期(int)和select字符串的值为。
$scope.selectedTime //The selected option
$scope.SelectTicketByTime = function () {
    var range = $scope.selectedTime;
    var date = new Date();
    var day = date.getUTCDate().padLeft();
    var monthIndex = (date.getUTCMonth() + 1).padLeft();
    var year = date.getUTCFullYear();
    var hours = date.getUTCHours().padLeft();
    var minutes = date.getUTCMinutes().padLeft();
}
<select name="ruleDetails" ng-model="selectedTime" 
  ng-options="time.id as time.value for time in timeDetails" 
  ng-change="GetMenuForSelectedTime(selectedTime)">
  <option value="">-Select Time-</option>
</select>

$scope.GetMenuForSelectedTime = function(id) {
    alert(id);
};
<select name="timefilter" id="timefilter" 
  ng-model="selectedTime" 
  ng-change="GetMenuForSelectedTime(selectedTime)">
  <option value="Last week">@Translate("LAST_WEEK")</option>
  <option value="Last 3 days">@Translate("LAST_3_DAYS")</option>
  <option value="Yesterday">@Translate("YESTERDAY")</option>
  <option value="Today">Translate("TODAY")</option>
</select>