javascript - 将 ng-class 属性添加到 angularjs 指令的根元素
问题描述
我有一个大致像这样的指令,ng-class
模板中有一个:
module.directive('myDirective', [function() {
return {
restrict: 'E',
template: `<div ng-class="{'foo-expanded': expanded, 'foo': !expanded}"><div>`
//...
}
}]);
我的问题是,我的类ng-class
被应用于 ,div
在指令编译后最终嵌套在指令元素内:<my-directive><div>...</div></my-directive>
.
有没有办法将类应用于根<my-directive>
元素?我知道我可以在链接函数或控制器中使用 javascript 而不是动态添加类ng-class
,但我正在寻找一种避免这种情况的方法。
解决方案
您可以使用link
使您可以访问创建的元素(指令)的功能来做到这一点
module.directive('myDirective', [function() {
return {
restrict: 'E',
template: `<div ng-class="{'foo-expanded': expanded, 'foo': !expanded}"><div>`
link: function(scope, element, attrs) {
element[0].classList.add('test')
}
}
}]);
推荐阅读
- javascript - React Native - 数组内对象内的数组状态更新问题
- mysql - 从表中选择多行并插入到不同的表中
- python - 我如何在 Ubuntu 中使用 pyenv 返回我的系统 python
- javascript - Vue - 是否可以在组件的计算属性中使用 Vuex getter?
- javascript - rm -rf 不显示任何错误但不删除任何文件 VS Code
- android - adb - 添加 PIN 但不安全启动的脚本
- java - 如何通过 HSSFWorkbook 设置图像大小
- apache-kafka - Kafka文件流连接和流API
- python - 来自 Automate Boring Stuff With Python 的任务。5
- visual-studio-code - 以编程方式在源代码控制消息输入框中设置焦点(vs code API)