简体   繁体   English

将带有数组的输入名称传递给ng-show

[英]pass an input name with an array to ng-show

I am trying to pass an input name to ng-show. 我正在尝试将输入名称传递给ng-show。 When the input's name is not an array, this works just fine (if it's just 'entity' instead of 'entity[entity_name]'), but when there's an array it's not working. 如果输入的名称不是数组,则可以正常工作(如果只是“实体”而不是“ entity [entity_name]”),但是当存在数组时,它将无法正常工作。 something about this syntax - 'ng-show = "investForm.entity[entity_name].$error.pattern"' is wrong: 关于此语法的某些信息-'ng-show =“ investForm.entity [entity_name]。$ error.pattern”'错误:

<form name="investForm">
    <label>Entity Name</label>
    <input name="entity[entity_name]" rc-forms ng-pattern="/^[A-Za-z]+$/" type="text" ng-model="invest.entity_name" ng-required="invest.is_entity" />
        <div ng-show="investForm.entity[entity_name].$dirty && investForm.entity[entity_name].$invalid">
            <span ng-show="investForm.entity[entity_name].$error.pattern">Error: Please use English characters only!</span>
        </div>
</form>

I found this question pretty intriguing, so I've been Googling for a while. 我发现这个问题很吸引人,所以我已经搜寻了一段时间。 Apperently your problem is a JavaScript syntax error and I found it here: angularjs form can not refer to input control when input name is array 显然,您的问题是JavaScript语法错误,我在这里找到了它: 输入名称为数组时,angularjs表单无法引用输入控件

You can use square-brackets. 您可以使用方括号。 You have to reference your form element like this: 您必须像这样引用表单元素:

investForm['entity[entity_name]'].$error.pattern

I don't think you can use square brackets for the form name. 我认为您不能在表格名称中使用方括号。 Try replacing it with an underscore or something: 尝试用下划线或其他内容替换它:

<form name="investForm">
  <label>Entity Name</label>
  <input name="entity_entity_name" rc-forms ng-pattern="/^[A-Za-z]+$/" type="text" ng-model="invest.entity_name" ng-required="invest.is_entity" />
    <div ng-show="investForm.entity_entity_name.$dirty && investForm.entity_entity_name.$invalid">
      <span ng-show="investForm.entity_entity_name.$error.pattern">Error: Please use English characters only!</span>
    </div>
</form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM