【问题标题】:pass an input name with an array to ng-show将带有数组的输入名称传递给 ng-show
【发布时间】:2014-10-27 07:10:41
【问题描述】:

我正在尝试将输入名称传递给 ng-show。 当输入的名称不是数组时,这工作得很好(如果它只是 'entity' 而不是 'entity[entity_name]'),但是当有一个数组时它就不起作用了。 关于这种语法的一些东西 - '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>

【问题讨论】:

  • 你能在jsfiddle.net上创建一个包含必要javascript的小提琴吗?

标签: html arrays angularjs


【解决方案1】:

我发现这个问题很有趣,所以我在谷歌上搜索了一段时间。 显然您的问题是 JavaScript 语法错误,我在这里找到了它: angularjs form can not refer to input control when input name is array

您可以使用方括号。您必须像这样引用您的表单元素:

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

【讨论】:

    【解决方案2】:

    我认为您不能在表单名称中使用方括号。尝试用下划线或其他东西替换它:

    <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>
    

    【讨论】:

    • 我试过 ng-show="investForm.entity['entity_name'].$error.pattern 和 ng-show="investForm.entity.entity_name.$error.pattern 都没有用
    • 不要在表单字段名称中使用方括号,你应该很好。
    • 这样输入的名字不是一个数组。当它不是数组时没有问题,但我无法更改输入的名称。这是我传递的 ng-show 值的语法,我必须更改。
    • 输入的名字只是一个字符串标识符,为什么需要是一个数组呢?
    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 2018-10-01
    • 1970-01-01
    • 2015-12-20
    • 2016-12-08
    • 1970-01-01
    • 2018-09-02
    • 2018-08-05
    相关资源
    最近更新 更多