mar*_*nde 47 html javascript angularjs
我想在我的ng-repeat中为我的div设置一个动态id.让我举个例子.
<div id="$index" ng-repeat="repeat in results.myJsonResults">
<div id="$index" ng-click="saveID($index)" ng-repeat="subRepeat in results.myJsonResults.subresults">
</div>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我点击我的孩子div时,我想得到我的父ID名称,但看起来像angular不能正确地将ID设置为div.是否可以在此概念中设置动态ID?
PS:我曾尝试在我的控制器上创建一个计数器方法并设置一个索引,但事实证明,angular只识别此ID的最后一个值.
pko*_*rce 71
要回答您的问题,请尝试以下方法:
<div id="{{$index}}" ...>
Run Code Online (Sandbox Code Playgroud)
虽然上面应该有效,但这可能不是你想要的(!).请注意,AngularJS通过引用id来操作元素是相当罕见的.
您应该专注于您的模型,声明性描述UI,让AngularJS完成剩下的工作,而无需"手动"进行低级DOM操作.
Pix*_*its 33
我能想到的一个用例是将<label>元素与各自的<input>元素相关联,如http://jsfiddle.net/YqUAp/所示.
应用有一个pkozlowski.opensource的方法
<label for="{{ 'textField-' + $index }}">Option {{ $index }}</label>
<input type="text" id="{{ 'textField-' + $index }}" ng-model="field"/>
Run Code Online (Sandbox Code Playgroud)
虽然我不确定这是否是最有效的方法.(即使只是为了可读性)
<div id="{{$index}}" ...>
Run Code Online (Sandbox Code Playgroud)
工作得很好,但是如果 - 例如 - subRepeat会有一个id字段,你也可以重复使用该字段的动态id.那将是:
<div id="subRepeat{{subRepeat.id}}" ...>
Run Code Online (Sandbox Code Playgroud)
这会在你重复的div上放置像subRepeat1,subRepeat2 ......这样的id