将动态数据应用于title属性的替代方法

时间:2016-05-11 06:27:31

标签: html angularjs lodash

我正在尝试将动态数据设置为标签标签的标题。我已经使用了lodash中的大写属性并应用了类似<label title="{{caption}} {{optVal.charAt(0).toUpperCase()+optVal.slice(1)}}">{{optVal}}</label>的东西。我意识到在DOM对象上发生了太多的计算,这是不好的做法,后来我试图将它传递给一个函数它可以返回所需的结果。我仍然在寻找一种更好的解决方案来减少开销,有人可以帮我解决这个问题。

http://jsbin.com/cexonihaki/edit?html,js,output

2 个答案:

答案 0 :(得分:1)

您可以在范围内创建一个创建标题并在视图中使用它的函数(或者使用CSS作为其他提及但它将大写所有标题而不仅仅是一个字母)

我克隆了你的jsbin,http://jsbin.com/vutuwibube/1/edit?html,js,output 它会立即运行

 <label ng-attr-title="{{creatTitle()}}">{{optVal}}</label>

控制器端:

 $scope.creatTitle = function( ){
      return $scope.caption + " " + $scope.optVal.charAt(0).toUpperCase()+ $scope.optVal.slice(1);
 }

答案 1 :(得分:0)

您可以使用$timeout()功能或scope.$digest();

这里是角doc。用于摘要

这是他们之间差异的好documentation