Angularjs 在角度表达式中格式化字符串

Angularjs 在角度表达式中格式化字符串,angularjs,Angularjs,在我的angular应用程序中,我想显示一个值: <div>{{myValue}}</div> {{myValue} 如果值为空,我还希望使其显示为“Empty”,如下所示: <div>{{myValue || 'Empty'}}</div> {{myValue | |'Empty'} 如何使myValue正常格式化,而“Empty”用斜体表示?一种方法是使用ng if来处理这两种情况: HTML模板: <div ng-if="myV

在我的angular应用程序中,我想显示一个值:

<div>{{myValue}}</div>
{{myValue}
如果值为空,我还希望使其显示为“Empty”,如下所示:

<div>{{myValue || 'Empty'}}</div>
{{myValue | |'Empty'}

如何使myValue正常格式化,而“Empty”用斜体表示?

一种方法是使用
ng if
来处理这两种情况:

HTML模板:

<div ng-if="myValue">{{myValue}}</div>
<div ng-if="!myValue"><i>Empty</i></div>  <!-- css here! -->
{{myValue}
空的

但是,这可能有点冗长。如果反复出现这种情况,请使用控制器函数中的
过滤器
或绑定
ng bind html

您可以使用
ng show
/
ng hide

<div ng-show="myValue">{{myValue}}</div>
<div ng-hide="myValue"><i>Empty</i></div>
{{myValue}
空的

这些指令采用“truthy”值,并根据传递的值显示/隐藏。

一种方法是使用ng bind html

  <body ng-controller="ngBindHtmlCtrl">
    <p ng-bind-html="myValue"></p>
  </body>

在控制器中,您可以管理空状态:

app.controller('ngBindHtmlCtrl', ['$scope', function ngBindHtmlCtrl($scope) {
  if($scope.myValue == ''){
    $scope.myValue = '<i>Empty</i>';
  }
}]);
app.controller('ngBindHtmlCtrl',['$scope',函数ngBindHtmlCtrl($scope){
如果($scope.myValue==''){
$scope.myValue='Empty';
}
}]);
检查这个


如果要将html添加到输出,则需要使用
ng bind html
指令