Angularjs:将粗体样式应用于ng-repeat内的字符

时间:2016-06-01 13:28:24

标签: css angularjs

我有一个清单:

$scope.list = ["test/test1/test2/test3","test3/test5/test6"];

我希望在显示列表时将粗体样式应用于/字符:

<div ng-repeat="path in list">
   <p style="font-weight:bold">{{path}}</p>
</div>

你有什么想法我怎么能实现这个目标?

Fiddle

4 个答案:

答案 0 :(得分:3)

您只需使用str.replace http://jsfiddle.net/k18vgtvw/

即可
 <p style="font-weight:bold" ng-bind-html-unsafe="csc(path)"></p>

控制器

  $scope.csc = function(path) {
    return path.replace(/\//g, "<span style='color:red'>/</span>");
  }

答案 1 :(得分:2)

有很多方法可以做到这一点。首先,我向控制器添加一个函数,假设它叫做boldSlashes。

function boldSlashes(path) {
     return path.replace("/","<b>/</b>")
}

然后将您的html更改为:

<div ng-repeat="path in list" ng-bind-html>
   boldSlashes({{path}})
</div>

ng-bind-html告诉angular将内容视为html而不是逃避它。

您还必须将ngSanitize注入您的模块才能使用ng-bind-html。

因此,无论您在何处创建模块,都要将ngSanitize添加到依赖项中,如:

angular.module( '对myApp',[ngSanitize])

答案 2 :(得分:0)

我不确定这是不是你想要做的事情,但我把各个元素分开了。 jsfiddle字体的粗体字体在/字符上看起来完全相同。

http://jsfiddle.net/3a2duqg4/ 1.将视图更新为列表 2.更改数组以使每个部分具有单独的项目 3.为&#34; /&#34;添加了样式;并且用小提琴默认字体实现了字体粗体属性并没有任何不同。

<div ng-controller="MyCtrl">
    <ul>
        <li class="list" ng-repeat="path in list">{{path}} <span>/</span></li>
    </ul>
</div>

将项目添加到列表而不是段落并添加了一些样式。我更新了你的数组,每个数组项也有一个值。

如果这有帮助,请告诉我! :)

答案 3 :(得分:0)

&#13;
&#13;
var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.list = ["test/test1/test2/test3","test3/test5/test6"];
    $scope.updateString = function(s) {
    	return s.replace(/\//g, '<span class="bold">/</span>');
    };
}
&#13;
.bold {
  font-weight: bold;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="MyCtrl">
    <div ng-repeat="path in list">
      <p ng-bind-html-unsafe="updateString(path)"></p>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;