如何在ng-repeat中访问表单?

时间:2017-11-23 18:02:21

标签: javascript angularjs angularjs-forms

Here是关于表格的明确例子:

<div ng-form="namesForm_{{$index}}" ng-repeat="name in names">
<input type="text"
       name="input_{{$index}}_0"></input>
<!-- ... -->

好的,但我应该如何从表单访问$valid字段?例如,工作:

{{namesForm_$index.$valid}}

即使{{namesForm_$index}}输出0

需要&#34;内联&#34;在$index解析变量名之前{{}}。怎么做?

2 个答案:

答案 0 :(得分:0)

{{ IsFormValid($index) }}

$scope.IsFormValid = function(index) {
   var form = angular.element("formName" + index);
   return form.$valid;
};

<强>已更新

工作示例:

{{ IsFormValid($index) }}

$scope.IsFormValid = function(index) {
   var form = angular.element(document.getElementById('#bucketForm-' + index);
   return form.$valid;
};

新方法

下面是动态ngModel的示例,同样可以复制表单名称:

$scope.formData = {};
$scope.formData = {
  settings:
  {
    apiEndpoint: '',
    method: 'get'
  },
  parameters: {}
};

<div class="form-group" ng-repeat="parameter in apiParameters">
  <label for="{{parameter.paramName}}" class="col-sm-2 control-label">{{parameter.paramTitle}}</label>
  <div class="col-sm-3">
    <input type="text" class="form-control" name="{{parameter.paramName}}" id="{{parameter.paramName}}" ng-model="formData.parameters[parameter.paramName]" placeholder="{{parameter.paramTitle}}">
  </div>
</div>

答案 1 :(得分:0)

在单个isset()表达式中获取它并不容易,但是如果你只想在接受没有把手的表达式的指令中使用它(比如{{ }}),你可以实现:

ng-disabled