【问题标题】:Multiline/innerHtml/contentEditable Angular ChallengeMultiline/innerHtml/contentEditable 角挑战
【发布时间】:2018-10-19 15:19:40
【问题描述】:

我正在尝试使用 Angular5 制作一种具有 divcontenteditable 属性的“文本编辑器”,这样用户就可以编写纯文本,而且让用户选择随机文本的一部分,然后触发一个事件,该事件添加一个带有一些类和 IDdiv 标记,所有这些都围绕选定的文本,因为用户可以添加此最近选择的文本的一些其他属性。

但是,用户不必查看标签,只需查看周围 html 标签的结果,然后我想保存整个字符串及其 html 属性。这是因为,稍后用户可以再次调用此“模板”,而我必须显示用户所做的所有设置。

我试过 [innerHtml],但是这个属性写反了,我可以做多行 div。

这是带有 appContentEditableModel 的 HTML 的简化版本,我可以将其用作 ngModel 的等价物。

(click) 方法我没有使用它,直到我能找到一种方法将所有这些东西添加到字符串中

<div *ngFor="let item_drag of items_drag; let idx = index">
    <div [(appContenteditableModel)]="item_drag.data.content" 
         contenteditable="true"
         (mouseup)="setSelectedVariableText(item_drag)"
          style="min-width:100px; max-width: 599px; padding: 2px 0;border: 1px dashed gray; cursor: text; white-space: pre-wrap;"></div>
    </div>

这是我保存数据的对象

items_drag = [
  {data:{
      type: 'whatEver,
      content: 'string'
    }
  }
]

【问题讨论】:

    标签: angular angular5


    【解决方案1】:

    您需要清理代码才能“执行”为 html。

    这会有所帮助, https://medium.com/@swarnakishore/angular-safe-pipe-implementation-to-bypass-domsanitizer-stripping-out-content-c1bf0f1cc36b

    虽然不建议在没有任何手动完整性检查的情况下使用它。您的代码可能容易受到 XSS 攻击。

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 2019-05-31
      • 2014-12-21
      • 2018-01-21
      • 1970-01-01
      • 2020-01-16
      • 2017-06-23
      • 2013-12-21
      • 1970-01-01
      相关资源
      最近更新 更多