加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何在标记中使用条件绑定中的HTML

发布时间:2020-12-17 07:27:42 所属栏目:安全 来源:网络整理
导读:我有这样的标记 p{{ !job.AdditionalNotes ? "No additional notes." : job.AdditionalNotes }}/p 想强调No Additional notes使用类似的东西. p{{ !job.AdditionalNotes ? em"No additional notes."/em : job.AdditionalNotes }}/p 有没有办法在不使用ng-if
我有这样的标记
<p>{{ !job.AdditionalNotes ? "No additional notes." : job.AdditionalNotes }}</p>

想强调No Additional notes使用类似的东西.

<p>{{ !job.AdditionalNotes ? <em>"No additional notes."</em> : job.AdditionalNotes }}</p>

有没有办法在不使用ng-if和ng-show的情况下执行此操作来保留三元运算符?

第一选择

我通过以下方式工作(没有ng-show或ng-if).我正在使用ng-bind-html和$sce服务来呈现HTML.由于您的“无附加说明”消息是通用且通用的,因此我们可以在控制器中轻松定义并在清理后从方法中获取它.

var app = angular.module("sa",[]);

app.controller("FooController",function($scope,$sce) {

  $scope.jobs = [{
    name: "Sr. Software Developer"
  },{
    name: "Software Associates",AdditionalNotes: "Remote location"
  },{
    name: "Front-end developer"
  }];

  $scope.trust = function(text) {
    return $sce.trustAsHtml(text);
  };

  $scope.noNotesMessage = function() {
    return $scope.trust("<em>No additional notes.</em>")
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="sa" ng-controller="FooController">
  <ol>
    <li ng-repeat="job in jobs">
      <strong>{{job.name}}</strong>
      <p ng-bind-html="!job.AdditionalNotes ? noNotesMessage() : trust(job.AdditionalNotes)"></p>
    </li>
  </ol>
</div>

第二选择

或者,您可以编写指令:

var app = angular.module("sa",{
    name: "Front-end developer"
  }];
});

app.directive('notes',function() {
  return {
    restrict: 'E',scope: {
      additional: '='
    },link: function($scope,element,attr) {
      var html = "<p>" + ($scope.additional || "<em>No additional notes.</em>") + "</p>";
      element.html(html);
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="sa" ng-controller="FooController">
  <ol>
    <li ng-repeat="job in jobs">
      <strong>{{job.name}}</strong>
      <notes additional="job.AdditionalNotes"></notes>
    </li>
  </ol>
</div>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读