javascript - 如何使字段显示为文本而无需 ng-repeat 内的 HTML 代码

标签 javascript jquery angularjs fullcalendar fullcalendar-scheduler

我有一个像这样的数据结构:

books = [
            {
                id: 'id1',
                content: {
                    name: '<p><span>name</span><span>1</span></p>',
                    price: 'price1',
                    date: 'd1'
                }
            },
            {
                id: 'id2',
                content: {
                    name: '<p><span>name</span><span>2</span></p>',
                    price: 'price2',
                    date: 'd2'
                }
            },
            {
                id: 'id3',
                content: {
                    name: '<p><span>name</span><span>3</span></p>',
                    price: 'price3',
                    date: 'd3'
                }
            }
        ]

如何在不使用 HTML 的情况下使名称字段显示在外部事件框中? 我尝试了 ng-bind-html-unsafe="book.content['name'] 但它不起作用。

<body ng-controller="MainCtrl">
<div id='external-events'>
  <h4 >Draggable books</h4>

     <li ng-repeat="book in books track by $index"  
             id="book.id">
          <ul class="fc-event" data-drag="true"  data-jqyoui-options="{revert: 'invalid'}" jqyoui-draggable="{index {{$index}},placeholder:true,animate:true}">
            <li ng-bind-html-unsafe="book.content['name']"> {{book.content['name']}}</li>
            <li>{{book.content['price']}}</li>
            <li>{{book.content['date']}}<br></li>
           </ul>
      </a>
  </div>
<div id='calendar-container'>
  <div id='calendar'></div>
</div>
</body>

下面您可以找到为此目的创建的代码笔

https://codepen.io/adier/pen/KbEpWQ?editors=1111

非常感谢。

最佳答案

从 li 元素中删除 {{book.content['name']}}。您有一个属性指令 ng-bind-html-unsafe 可以实现这一点:

 <li ng-bind-html="book.content['name']"></li>

更新

ng-bind-html-unsafe 替换为 ng-bind-html 指令。

在 Controller 中注入(inject)$sce服务并为每本书执行$sce.trustAsHtml(book.content.name);

所以它看起来像:

  $scope.books.forEach(function(book) {
    book.content.name = $sce.trustAsHtml(book.content.name);
  })

fiddle :https://codepen.io/gudzdanil/pen/vvPJYr?editors=1111

关于javascript - 如何使字段显示为文本而无需 ng-repeat 内的 HTML 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203273/

相关文章:

javascript - jQuery - 无法获取 append 元素的属性

javascript - 崩溃碰撞时数组拼接多个对象

javascript - jquery复选框元素类click

javascript - 如何使用javascript,jquery将下拉选项值从后到开始和从开始更改为后

javascript - Angular.js 与 Ruby On Rails Forms 的集成

javascript - browser.switchTo().alert() 在 Protractor 中不起作用

javascript - 如果在嵌入后添加动态元素,为什么指令下的动态元素会具有错误的范围?

javascript - 猫头鹰 slider 改变 img src 打破 slider

javascript - 新用户注册时填充 Firebase 数据库中的用户对象?

JQuery货币格式,但只提交数字