如何使用 Angular JS 处理表单中的多个提交按钮?

2024-04-27

我正在使用 AngularJS,并且有一个用户可以输入数据的表单。在表单的末尾,我想要有两个按钮,一个用于“保存”,它将保存并转到另一页,另一个标记为“保存并添加另一个”的按钮将保存表单,然后重置它 - 允许他们输入另一个条目。

我如何以角度实现这一点?我想我可以有两个带有 ng-click 标签的提交按钮,但我在表单元素上使用 ng-submit。我有什么理由需要使用 ng-submit - 我不记得为什么我开始使用它而不是 ng-click 按钮。

代码看起来像这样:

<div ng-controller="SomeController">
    <form ng-submit="save(record)">
        <input type="text" name="shoppingListItem" ng-model="record.shoppingListItem">
        <button type="submit">Save</button>
        <button type="submit">Save and Add Another</button>
    </form>
</div>

并在控制器中SomeController

$scope.record = {};
$scope.save = function (record) {
    $http.post('/api/save', record).
        success(function(data) {
            // take action based off which submit button pressed
        });
}

您可以同时保留ng-click and type="submit"。在里面ng-click您只需更新控制器的参数并在事件中验证该参数即可ng-submit:

<div ng-controller="SomeController">
<form ng-submit="save(record)">
    <input type="text" name="shoppingListItem" ng-model="record.shoppingListItem">
    <button type="submit">Save</button>
    <button type="submit" ng-click="SaveAndAddClick=true">Save and Add Another</button>
</form>

所以这种方法避免了你添加一个方法然后调用多余的代码。

Thanks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Angular JS 处理表单中的多个提交按钮? 的相关文章