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>