Javascript 我可以在AngularJS中的指令声明中连接吗?

Javascript 我可以在AngularJS中的指令声明中连接吗?,javascript,angularjs,Javascript,Angularjs,我有一个带有ng repeat指令的表单。我正在使用ng show显示验证错误消息。我试图在ng repeat指令中添加验证消息,但遇到问题。这就是我到目前为止所做的: <form name="rentalApp" ng-controller="RentalAppCtrl"> <label for="name">Full Name</label> <input id="name" name="name" ng-model="app.name"&g

我有一个带有
ng repeat
指令的表单。我正在使用
ng show
显示验证错误消息。我试图在
ng repeat
指令中添加验证消息,但遇到问题。这就是我到目前为止所做的:

<form name="rentalApp" ng-controller="RentalAppCtrl">
  <label for="name">Full Name</label>
  <input id="name" name="name" ng-model="app.name">
  <div ng-show="rentalApp.name.$invalid">Please enter your name</div>

  <div ng-repeat="history in app.history">
    <label for="address{{ $index }}">Street Address</label>
    <input id="address{{ $index }}" name="address{{ $index }}" ng-model="history.address">
    <div ng-show="rentalApp.('address' + $index).$invalid">Please enter an address</div>
  </div>
</form>
我遇到的问题是,在
ng repeat
指令中,索引是动态的。我已经摆弄这一点有一段时间了,我认为最接近解决方案的是这一行:

<div ng-show="rentalApp.('address' + $index).$invalid">Please enter an address</div>
请输入一个地址
然而,这不起作用

如何正确地将单词“address”与
$index
变量连接起来,沿着
address0
的行创建一个字符串,然后在
ng show
指令中使用该字符串来确定表单元素是否无效?或者,我是否完全错了(不是“角度的方式”)

编辑


我在控制台中查看
rentalApp
对象,AngularJS没有像我预期的那样评估
name
属性。具体地说,
rentalApp
对象包含一个
address{{{$index}}
对象,而不是
address0
。因此,看起来我无法在
name
属性中使用表达式
{{$index}

UPDATE

我做了一项研究,发现除了为名称创建一个自定义指令之外,不可能给名称赋予动态值

但是有一个解决方案,您可以使用
ng form
指令为每个
ng repeat
元素验证动态表单

<div ng-repeat="history in app.history">
      <ng-form name="addressForm">
          <label>Street Address</label>
          <input name="address" ng-model="history.address" ng-required="true">
          <div ng-show="rentalApp['address' + $index].$invalid">Please enter an address</div>
          <span class="alert error" ng-show="addressForm.address.$invalid">Please enter an address</span>
      </ng-form>
</div>

街道地址
请输入一个地址
请输入一个地址
这是你的…

放好:

<input name="{{input.name}}"></input>

这还不够。
rentalApp
表单肯定是一个充满对象的对象。我已经更新了这个问题。
<input name="{{input.name}}"></input>