提供了一个div类型的HTML元素,如何设置其id属性的值,这是一个范围变量和字符串的连接?
当前回答
我发现实现这种行为的一个更优雅的方法是:
<div id="{{ 'object-' + myScopeObject.index }}"></div>
对于我的实现,我希望ng-repeat中的每个输入元素都有一个唯一的id来关联标签。因此,对于myScopeObjects中包含的对象数组,可以这样做:
<div ng-repeat="object in myScopeObject">
<input id="{{object.name + 'Checkbox'}}" type="checkbox">
<label for="{{object.name + 'Checkbox'}}">{{object.name}}</label>
</div>
在动态添加这样的内容时,能够动态生成唯一id是非常有用的。
其他回答
我发现实现这种行为的一个更优雅的方法是:
<div id="{{ 'object-' + myScopeObject.index }}"></div>
对于我的实现,我希望ng-repeat中的每个输入元素都有一个唯一的id来关联标签。因此,对于myScopeObjects中包含的对象数组,可以这样做:
<div ng-repeat="object in myScopeObject">
<input id="{{object.name + 'Checkbox'}}" type="checkbox">
<label for="{{object.name + 'Checkbox'}}">{{object.name}}</label>
</div>
在动态添加这样的内容时,能够动态生成唯一id是非常有用的。
ngAttr指令在这里完全有帮助,正如官方文档中介绍的那样
https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes
例如,要设置div元素的id属性值,以便它包含一个索引,视图片段可能包含
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
哪个会被插值
<div id="object-1"></div>
如果你遇到这个问题,但涉及到较新的Angular版本>= 2.0。
<div [id]="element.id"></div>
您可以简单地执行以下操作
在你的js中
$scope.id = 0;
在模板中
<div id="number-{{$scope.id}}"></div>
它会渲染
<div id="number-0"></div>
没有必要在双花括号内连接。
如果你使用这个语法:
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
Angular会渲染如下内容:
<div ng-id="object-1"></div>
但是这种语法:
<div id="{{ 'object-' + $index }}"></div>
将生成如下内容:
<div id="object-1"></div>
推荐文章
- 使用Javascript的atob解码base64不能正确解码utf-8字符串
- 从ng-click获取原始元素
- 如何阻止恶意代码欺骗“Origin”报头来利用CORS?
- Angular JS:当我们已经有了具有作用域的指令控制器时,指令的link函数还需要什么?
- 我如何在JavaScript中转换对象数组为一个对象?
- Angularjs的ng-model不能在ng-if中工作
- 如何让一个按钮将我的页面重定向到另一个页面?
- AngularJS禁用了开发机器上的部分缓存
- 如何让元素被点击(对于整个文档)?
- 我如何检查如果一个变量是JavaScript字符串?
- 如何检测如果多个键被按下一次使用JavaScript?
- 如何通过history. pushstate获得历史变化的通知?
- 使用jQuery改变输入字段的类型
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用jQuery以像素为整数填充或边距值