如何在AngularJS中将css类添加到transcluded ng repeat内容中
How to add css class to transcluded ng-repeat content in AngularJS
我将问题简化为:我想生成一个myDirective
指令,以便:
开发者输入:
<my-directive>
<label ng-repeat="opt in [1,2]">
<input type="radio" name="radio" id="opt" value="opt" ng-model="radioModel.name"> Radio {{opt}}
</label>
</my-directive>
预期html输出:
<my-directive>
<label class="myClass">
<input type="radio" name="radio" id="opt" value="opt" ng-model="radioModel.name"> Radio {{opt}}
</label>
<label class="myClass">
<input type="radio" name="radio" id="opt" value="opt" ng-model="radioModel.name"> Radio {{opt}}
</label >
</my-directive>
我的问题是如何将类"myClass"动态添加到每个标签标签中?这是我的小提琴。正如你所看到的,目前我之所以能够做到这一点,是因为我手动逐个添加了每个标签标签,但我想使用ng repeat。欢迎提出任何想法/意见。
您只需要添加一个ng类。。。。
HTML
<my-directive ng-class="{'myClass':true}">
<label>1</label>
<label>2</label>
</my-directive>
JS
var app=angular.module('myapp', [])
.directive('myDirective', function () {
return {
restrict:'EA',
transclude:true,
template:"<div></div>",
scope:true,
link: function (scope, elm, attrs,ctrl,transclude) {
transclude(scope,function(clone) {
elm.append(clone);
});
}
};
})
CSS
body {
background-color: #eef;
}
.myClass {
color: red;
}
正如在小提琴中看到的。
编辑
在理解了你的问题之后,攻击它的唯一方法就是添加元素。AddClass('className'),在指令中。
var app=angular.module('myapp', [])
.directive('myDirective', function () {
return {
restrict:'EA',
transclude:true,
template:"<div></div>",
scope:true,
link: function (scope, elm, attrs,ctrl) {
element.AddClass('myClass');
$compile(element)(scope);
}
};
})
相关文章:
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- ng更改事件不适用于Dropdown
- ng视图外的链接重定向到ng视图内的页面
- ng应用程序使脚本无限运行
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- ng隐藏和ng显示无法正常工作
- 从ng模板访问作用域
- 防止ng重复中的重复值(AngularJS)
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- AngularJs列表ng单击以选择选项转换
- 如何使用AngularJs禁用ng选项中的选项
- ReferenceError: cordova is not defined @ng-cordova.min.js:7
- 如何在AngularJS中将css类添加到transcluded ng repeat内容中