【问题标题】:Posting a form (the old way) with ng-click, is this bad practice?使用 ng-click 发布表单(旧方式),这是不好的做法吗?
【发布时间】:2014-04-23 08:05:56
【问题描述】:

我的老板给了我一个任务,他仍然喜欢旧的方式...有一个 HTML 页面/视图并将表单提交到 PHP 页面服务器端。我们已经将 AngularJS 引入了他的应用程序,他的页面中有以下代码:

<form name="rForm" id="rForm"  action="demo_form.php" method="post">
    <input type="hidden" name="quantity" id="reservationQuantity" ng-value="selectedQuantity"/>
    <input type="hidden" name="date" id="reservationDate" ng-value="selectedDate"/>
    <input type="hidden" name="time" id="reservationTime" ng-value="selectedTime"/>
    <input type="hidden" name="mId" id="mID" value="{{ $merchant->id }}" ng-value="mId"/>
</form>

<button>Go to next page...</button>

现在他希望我们有一个链接或按钮来提交这个表单之外的表单,我相信我们应该控制这一切,这是一个控制器,所有发布功能都由注入/单独的$http处理服务。他不相信我,说他最清楚,我应该像这样处理提交表单

<button onclick="$('#reservationForm').submit();">Go to next page...</button>

我不喜欢这样...但是他支付工资。有什么方法可以从我的 Angular 控制器提交表单/页面并删除所有可怕的 jQuery 代码?像这样的东西(这行不通,我只是将其用于视觉目的)

<button ng-click="ng-submit()">Go to next page...</button>

...我说得对吗?他的方法是不好的做法,如果我们要通过推送页面来提交到服务器,那么使用 MVC 框架是没有意义的。

【问题讨论】:

  • 使用 AngularJS 是你的选择还是他的选择?如果 Angular JS 在您的 Web 应用程序中发挥重要作用,那么切换回 jquery 是没有意义的。
  • @babyfarkmcgeezax - 这就是我的想法。他和我一样想使用 AngularJS——他只是不明白!

标签: javascript php forms angularjs


【解决方案1】:

是的,您可以通过 Angular 控制器提交表单。为此,您只需在 ng-click 中调用控制器函数,如下所示:

<button ng-click="submit()">Go to next page...</button>

其中 submit() 是您的控制器功能。您还需要将 ng-model 分配给所有表单字段以在控制器中访问它们。

【讨论】:

  • 谢谢,我意识到我可以收集表单项并使用 $http 与后端对话,我的意思是我可以使用 Angular 将整个页面推送到服务器,就像我们在黑暗中所做的那样互联网编程天数
猜你喜欢
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多