我正在尝试将输入名称传递给ng-show。 当输入的名称不是数组时,这很好(如果它只是'实体'而不是' 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>
答案 0 :(得分:0)
我发现这个问题非常有趣,所以我已经谷歌搜索了一段时间。 好像你的问题是JavaScript语法错误,我在这里找到它: angularjs form can not refer to input control when input name is array
您可以使用方括号。你必须像这样引用你的表单元素:
investForm['entity[entity_name]'].$error.pattern
答案 1 :(得分:0)
我认为您不能使用方括号作为表单名称。尝试用下划线或其他东西替换它:
<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>