javascript - AngularJS 表单未绑定(bind)到 $http 请求

标签 javascript angularjs http get

 <form novalidate class="form-horizontal">
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <div class="text-capitalize">

                        </div>
                    </div>
                </div>

                <div class="panel-body">
                    <div class="form-group">
                        <label for="inputUsluga3" class="col-sm-2 control-label">Usluga</label>
                        <div class="col-sm-6">
                            <select id="inputUsluga3" class="form-control">
                                <option>Kombi</option>
                                <option>Hotel</option>
                            </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputOdDatum3" class="col-sm-2 control-label"><i class="fa fa-calendar"></i> <i class="fa fa-arrows-h"></i> <i class="fa fa-calendar"></i>Od datuma</label>
                        <div class="col-sm-6">
                            <input id="inputOdDatum3" type="text" class="form-control" ng-model="fromDate" data-max-date="{{untilDate}}" placeholder="Početak perioda" bs-datepicker data-date-format="dd.MM.yyyy" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputDoDatum3" class="col-sm-2 control-label"><i class="fa fa-calendar"></i> <i class="fa fa-arrows-h"></i> <i class="fa fa-calendar"></i>Do datuma</label>
                        <div class="col-sm-6">
                            <input id="inputDoDatum3" type="text" class="form-control" ng-model="untilDate" data-min-date="{{fromDate}}" placeholder="Kraj perioda" bs-datepicker data-date-format="dd.MM.yyyy" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputStanica" class="col-sm-2 control-label">Stanica</label>
                        <div class="col-sm-6">
                            <select id="inputStanica" ng-model="airport" class="form-control">
                                <option>PUY</option>
                                <option>ZAG</option>
                                <option>SPL</option>
                                <option>DUB</option>
                            </select>
                        </div>
                    </div>
                </div>

                <div class="panel-body">
                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10">
                            <button type="button" class="btn btn-default" ng-click="getData()">Dohvati podatke</button>
                        </div>
                    </div>
                </div>
            </form>

我的 Http 请求如下所示

        $scope.getData = function() {
            $http.get("/Services/JoppdService.svc/getKombiImport/" + $scope.fromDate + "/" + $scope.untilDate + "/" + $scope.airport)
                 .success(function (response) {
                     $scope.education = response;
                 });
        }

提交后,我在控制台中收到如下所示的请求

http://localhost:8080/Services/JoppdService.svc/getKombiImport/undefined/undefined/undefined

dateFrom、dateUntil 和机场没有绑定(bind)。问题出在哪里?

最佳答案

使用ng-submit,将所需参数绑定(bind)到对象obj中,如obj.fromDateobj.untilDateobj.airport 形式。使用按钮类型作为提交

您的 html 将转换为,

<form novalidate class="form-horizontal" ng-submit="getData(obj)">
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <div class="text-capitalize">

                        </div>
                    </div>
                </div>

                <div class="panel-body">
                    <div class="form-group">
                        <label for="inputUsluga3" class="col-sm-2 control-label">Usluga</label>
                        <div class="col-sm-6">
                            <select id="inputUsluga3" class="form-control">
                                <option>Kombi</option>
                                <option>Hotel</option>
                            </select>
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputOdDatum3" class="col-sm-2 control-label"><i class="fa fa-calendar"></i> <i class="fa fa-arrows-h"></i> <i class="fa fa-calendar"></i>Od datuma</label>
                        <div class="col-sm-6">
                            <input id="inputOdDatum3" type="text" class="form-control" ng-model="obj.fromDate" data-max-date="{{obj.formDate}}" placeholder="Početak perioda" bs-datepicker data-date-format="dd.MM.yyyy" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputDoDatum3" class="col-sm-2 control-label"><i class="fa fa-calendar"></i> <i class="fa fa-arrows-h"></i> <i class="fa fa-calendar"></i>Do datuma</label>
                        <div class="col-sm-6">
                            <input id="inputDoDatum3" type="text" class="form-control" ng-model="obj.untilDate" data-min-date="{{obj.untilDate}}" placeholder="Kraj perioda" bs-datepicker data-date-format="dd.MM.yyyy" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="inputStanica" class="col-sm-2 control-label">Stanica</label>
                        <div class="col-sm-6">
                            <select id="inputStanica" ng-model="obj.airport" class="form-control">
                                <option>PUY</option>
                                <option>ZAG</option>
                                <option>SPL</option>
                                <option>DUB</option>
                            </select>
                        </div>
                    </div>
                </div>

                <div class="panel-body">
                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10">
                            <button type="submit" class="btn btn-default">Dohvati podatke</button>
                        </div>
                    </div>
                </div>
            </form>

ng-submit 方法 getData() 中传递 obj,现在看起来像 getData(obj)

您必须将 fromDate 和 UntilDate 转换为字符串。看看this 。将下面的 convertToString() 替换为该链接中提到的解决方案。

然后在你的 Controller 中 getData() 看起来像,

$scope.getData = function(obj) {
    var fromDate = convertToString(obj.fromDate);
    var untilDate = convertToString(obj.untilDate);
    var airport = obj.airport;
            $http.get("/Services/JoppdService.svc/getKombiImport/"+fromDate+"/"+untilDate+"/"+.airport)
                 .success(function (response) {
                     $scope.education = response;
                 });
        }

此外,在形成 URL 时不要有空格 ("")。

如果你想初始化任何东西,请使用ng-init,如 this

关于javascript - AngularJS 表单未绑定(bind)到 $http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433857/

相关文章:

javascript - 无法使用 javascript 更改显示属性

javascript - 单击另一个时如何从div中删除颜色

javascript - 在 JavaScript 中-选择具有相同类的所有元素-除了单击的元素

html - 如何使用 Angularjs 过滤器过滤表中的两个 ng-module 值?

javascript - 我如何使用 Jasmine 测试 AngularJS promise 返回的内容?

java - 在 Java/Tomcat/HttpServlet 中获取二进制 HTTP Post 参数

javascript - 缩小原型(prototype)会引入错误?

http - 使用 php Http_request 的推特授权

php - 无法读取原始 POST 正文数据 - 在此示例中如何执行此操作?

javascript - AngularJS 在 insideHTML 编辑上中断