как передать значение выпадающего списка функции в качестве параметра

#javascript #angularjs

#javascript #angularjs

Вопрос:

У меня есть один выпадающий список, при событии ng-change мне нужно передать значение выпадающего списка $scope.getPIRData функции, чтобы я мог получать динамические результаты.

  <div class="col-sm-4 col-lg-offset-4" ng-controller="myCtrl">
        <select class="form-control"  ng-model="sel_val" ng-change="getPIRData(sel_val)" ng-options="data.deveui for data in Customers"></select>
    </div>
    <script>
        var app = angular.module('plunker', []);
        app.controller('myCtrl', function ($scope, $http, $window) {
            $scope.sel_val = 0;
            $scope.DefaultLabel = "Loading.....";
            var post = $http({
                method: "get",
                url: "../data.json",
                dataType: 'json',
                data: {},
                headers: { "Content-Type": "application/json" }
            });
            post.success(function (data, status) {
                $scope.Customers = data;

            });
            post.error(function (data, status) {
            });
            $scope.getPIRData = function (id) {
                $http.get("/PIRDetails/GetPIRStatus/"   id)
                    .then(function (response) {
                        $scope.myWelcome = response.data;
                        console.log(JSON.stringify($scope.myWelcome));
                    });
            };
        });
    </script>
  

Скриншот

Комментарии:

1. попробуйте отправить sel_val.deveui , т.Е., ng-change="getPIRData(sel_val.deveui)

Ответ №1:

Передайте значение в директиве ng-change.

 ng-change="getPIRData(sel_val)"
  

Комментарии:

1. он показывает что-то вроде этого — /PIRDetails/GetPIRStatus/[object Object] и выдает ошибку. ожидаемое значение — e8e1102d9

2. Для чего нужна структура Customers ? Приведенная выше ошибка просто означает, что sel_val это массив объектов. Добавьте console.log(id) перед вызовом $ http в getPIRData функции и сообщите мне результат.

3. Это не помогает, не могли бы вы сделать снимок экрана или хотя бы правильно отформатировать вывод?