Alternative way to apply dynamic data to title attribute
我正在尝试将动态数据设置为标签标签的标题。我使用了lodash的capitalize属性,并将其应用于类似于的应用中。我意识到在dom对象上进行的计算太多,这是一种糟糕的实践,后来我尝试将其传递给一个函数,在该函数中它可以返回所需的结果。我仍然在寻找一个更好的解决方案来减少开销,有人能帮我吗?
http://jsbin.com/cexonihaki/edit?HTML、JS、输出
- 为什么不使用css大写呢?CSS属性文本转换:大写;
- 是的@joashp是对的,你可以用css来做这个,看看stackoverflow.com/questions/30207272/…
- 他不能只大写一个字母而留下另一个单词,因为它带有文本转换
- joashp@i不能使用css capitalize属性,因为我只对标题应用更改,而不将其显示在任何其他位置,另一个选项是应用筛选器。
- Shubham Takode@你的建议实际上给了我一个解决方案,我仍然不确定它是否是理想的解决方案,但还是感谢你的参考:)
您可以在您的作用域中创建一个函数,该函数创建标题并在视图中使用它(或者使用CSS作为其他提示,但它将大写所有标题,而不仅仅是一个字母)。
我克隆了你的jsbin,http://jsbin.com/vutuwibube/1/edit?HTML、JS、输出它立刻运行
1
| <label ng-attr-title="{{creatTitle()}}">{{optVal}}</label> |
控制器侧:
1 2 3
| $scope.creatTitle = function( ){
return $scope.caption +"" + $scope.optVal.charAt(0).toUpperCase()+ $scope.optVal.slice(1);
} |
号
- 我也试过了,但仍在寻找更好的解决方案。
- 我试过了;)你有三个职位。1)像在视图中那样执行concat,2)像在控制器中那样执行concat,3)使用css,但不能只使用大写字母
您可以使用$timeout()函数或scope.$digest();函数。
这是有棱角的医生。用于摘要
这是他们之间区别的好文件
- 为什么要使用$timeout或$digest?超时是为了延迟通话。也许你想说$apply。不管怎样,我认为两个都没用她
- 哦,是的,我在考虑$scope的替代方法。