Angular没有使用ng-click提交参数

时间:2013-04-02 09:56:40

标签: javascript angularjs

我正在尝试在角度应用中提交标准表单。 在我尝试将ng-click添加到表单的提交按钮之前,一切正常 点击上的操作只是为了给用户提供一些反馈。

我的行为有点奇怪。完成提交并调用对点击行为的调用,但是,表单中没有提交参数。

我一直在谷歌搜索,人们似乎说,使用ng-click表单禁用提交,但它没有,每个工作正常,除了不发送的表单参数。

我知道我可以重新定义我自己的提交功能,使用ng-submit拦截帖子并自己发帖,这看起来有点矫枉过正,因为我想做的几乎是有效的。 (在这种情况下,我如何从角度回调中获取表单参数?)

更新

以下是一个实例:http://jsfiddle.net/hHapg/5/.If您选中一个框并提交,网址上没有参数。 如果你编辑文件并删除了提交按钮上的ng-click,它就会起作用。

<form ng-app="test" action="/echo/jsonp" name="orders" target="_blank" ng-controller="test">
    <table>
    <tr ng-repeat="order in [{orderId:1}, {orderId:4}]" >
        <td>
            <input  type="checkbox" name="order_ids{{i}}" value="{{order.orderId}}"></input>
        </td>
        <td>
            {{order.orderId}} : {{ order.checked}}
        </td>

    </tr>
    </table>
    <input type="submit" name="action" value="Picking List" class="btn btn-primary picked" ng-clik="submit(true)">
</form>

解决方案

发现问题。尽管真正的代码并不完全是我发表的代码。在兰登的帮助下,我设法解决它。问题是我在表单声明中有一个硬编码数组(不在我的例子中的ng-repeat中)。 (它从角度来看是硬编码的,但实际上是在运行时生成的)。将此数组移到顶部(与ng-ap相同),解决了这个问题。

1 个答案:

答案 0 :(得分:2)

您是否在所有nameinput代码上设置了select属性?我想大多数Angular示例都不包含name属性,因为提交表单似乎已成为过去。

以下简化示例运行正常。我需要查看您的特定代码,以帮助您解决问题所在的其他问题。

<强> http://jsfiddle.net/langdonx/DUV9q/

HTML:

<form ng-app="test" ng-controller="test" action="/echo/jsonp/" method="get">
    <input type="text" name="value1" ng-model="value1"/>
    <input type="text" name="value2" ng-model="value2"/>
    <input type="submit" ng-click="submit()">
</div>

JavaScript的:

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

app.controller('test', function ($scope, $http) {
    $scope.value1 = "val 1 here";
    $scope.value2 = "and val 2 here";

    $scope.submit = function () {
        alert('it should submit now, if it worked, you\'ll see some json');
    }
});
相关问题