有条件地添加类,然后将其永久设置为Angular
Conditionally Adding Class then Setting it Permanently in Angular
这可能是一个奇怪的问题,但如果我所问的是可能的,它对我来说会很有用。有没有一种方法可以使用条件语句设置一个类,然后将该类冻结到元素上?
这就是我想做的——如果一个元素的文本值为'somestring[A]'
,我想根据最后三个字符将这个元素设置为类greenify
的样式。然后,我想将字符串的值更改为'somestring'
,并保留greenify
类。请注意,我知道我可以以不同的方式显示此字符串,但对于我的情况,实际更改字符串是更可取的。
我有一种方法可以在脑海中实现这一点,但如果有一种有角度的方法,它会更干净、更清晰。如有任何帮助,我们将不胜感激。
我想问题是,在初始更改之后,是否需要更改类的值?如果没有,你可以在值上设置一个自定义手表,然后在更改后取消观看。通过取消查看它,类绑定不会在DOM中更新。
var unWatch = $scope.$watch('myVar', function() {
// set class on element
unwatch();
});
如果需要再次更新值并设置类,则可以在需要时重新添加监视和取消监视。
以下是我使用指令为自定义环境提出的解决方案。我希望它能帮助到别人。
.directive('colorByChange', function(){
return {
scope: {test: '=passedValue'},
link: function(scope, element){
element.ready(function(){
var txt = scope.test;
switch (txt.slice(-3, txt.length)) {
case '[A]':
element.addClass('greenify');
element.text(scope.test.slice(0, -3));
break;
case '[U]':
element.addClass('bluify');
element.text(scope.test.slice(0, -3));
break;
case '[D]':
element.addClass('redify');
element.text(scope.test.slice(0, -3));
break;
}
});
}
}
});
HTML
<span ng-repeat="handle in brand.handles" color-by-change passed-value="handle">
{{handle}}
</span>
相关文章:
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 在Angular Fullstack中设置TinyMCE
- Angular ng类需要帮助设置
- 将输入值设置为ng模型属性[Angular]时出现问题
- angular.js我如何设置数据什么是响应值
- 如何在页面加载angular js上设置从ajax调用中选择的选项
- 如何从配置文件中设置Angular值
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- Angular:如何使用ngRepeat并设置默认单选按钮选项
- 正在节点上设置Angular phonecat应用程序
- 全局设置angular.js url根
- 在ASP.NET Web API 2项目中设置Angular路由
- 导航后设置angular ui tinymce编辑器内容
- 如何设置 Angular.js
- 如何设置Angular配置变量来设置服务器地址
- 设置Angular JS中包含的模板中的$scope变量的值
- 在ES6的类属性上设置Angular服务会影响它的功能
- 通过美元范围.变量赋给另一个函数来设置angular中的值
- 如何设置 Angular JS 服务
- 如何在我的情况下设置Angular/Bootstrap UI