【问题标题】:How to access dynamic form name in Controller?如何在Controller中访问动态表单名称?
【发布时间】:2017-09-19 13:53:00
【问题描述】:

我想访问控制器中的动态表单名称。这是我的代码:

HTML

<form name="{{myForm}}" novalidate>     
    <input type="text" ng-model="username" name="username" required/>
    <span ng-show="(submit && myForm.username.$error.required)">
        <span>Required</span>
    </span>
</form>

控制器

angular.module("myApp",[]).controller("myCtrl",function($scope) {
    $scope.myForm= "validateForm";      
    console.log("form" + $scope.myForm)
});

我希望 $scope.myForm 应该打印表单对象,但它会打印字符串“validateForm”

【问题讨论】:

  • 你试过$scope.name吗?
  • 抱歉输入错误实际上是
  • 好吧,你写了$scope.myForm = "validateForm";。您究竟期望$scope.myForm 实际打印什么?与validateForm 有什么不同?因为如果它是不同的东西,那么我会感到困惑。你不会吗?
  • 我希望它打印表单对象而不是“validateForm”

标签: javascript angularjs html


【解决方案1】:

我猜您想在不知道其名称的情况下验证动态表单。 您可以在表单submit 事件ng-submit 上传递form 名称

<form name="{{name}}" novalidate ng-submit="save(name)">  

然后您可以在控制器方法中验证表单。

$scope.save = function(form){
   console.log($scope[form]) //here you can get form from `$scope`
}

【讨论】:

  • 您好,我尝试了您的解决方案,但它没有打印表单对象.. 它只是打印字符串名称属性
  • @Vinothkanna 检查已更新.. 忘记更新我函数中的代码.. 应该是 $scope[form]
  • 除了这个还有其他方法吗?
  • @Vinothkanna 其他方式是什么意思以及为什么这不好?
  • 当我们在同一个表单中有一个提交按钮时这很好,但在我的情况下我有很多组件。我在单独的组件中有一个按钮,因此不会触发 ng-submit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 2016-12-24
  • 2022-04-26
相关资源
最近更新 更多