形成最佳实践(angularjs 1.6)

时间:2017-09-29 09:48:09

标签: javascript angularjs

我已经看到了实现表单的不同方法及其与控制器交互的逻辑,我想知道最佳方法是什么。

示例:

<form name="myForm" ng-submit="submit(user)">
  username: <input name="username" ng-model="user.username">
  age: <input name="age" ng-model="user.age">
</form>

在该示例中,控制器中的submit()方法有3种方式从表单中提取usernameage

  • 使用$scope.myForm对象。此对象还包含与表单验证相关的信息。
  • 使用$scope.user对象。
  • 使用传递给user方法的submit()变量。

所以我的问题是,最佳做法是什么?

3 个答案:

答案 0 :(得分:1)

让我们来看看3种方法:

  1. $scope.myForm仅用于表单验证。我通常会通过选中$scope.myForm.$invalid来停用提交按钮。

  2. $scope.user - 它会限制submit函数仅使用此变量并降低其可重用性。您还需要输入更多 - $scope部分的开销,我正在迂腐。

  3. 我更喜欢第三种方法,因为它增加了submit功能的可重用性。

答案 1 :(得分:0)

使用传递给submit(用户)的用户变量是最好的方法。

答案 2 :(得分:0)

不要使用$ scope,而是将所有内容绑定到控制器。这应该是这样的:

<form name="$ctrl.myForm" ng-submit="$ctrl.submit()">
  username: <input name="username" ng-model="$ctrl.user.username">
  age: <input name="age" ng-model="$ctrl.user.age">
</form>

传递$ ctrl.user为我提交是没有意义的,但这更多的是风格。

P.S。对于简单的情况,你不需要控制器中的Form对象,当事情变得复杂时,你会发现没有它很困难。作为一个实例,尝试在某些字段上添加异步验证,这应该在模糊和表单提交时发生(如果模糊验证尚未完成)