繁体   English   中英

如何在双向数据绑定中使用ng-bind-html?

[英]How to use ng-bind-html with two-way databinding?

我目前正在研究一个用angular构建的简单编辑器。 主文本框只是一个div,其中contenteditable设置为true和ng-bind-html属性,如下所示:

<div contenteditable="true" ng-bind-html="field.content">HTML content here</div>

使用正确的标记设置和正确呈现该值并查看页面加载。 但由于它仅限于一种方式,我的数据或模型在编辑时不会更新。

我已经尝试了一些可疑的方法,但大多数都需要ng-model,但如果我添加我的html标签不会被渲染并转换成符号。

在更改div的内容之后,我将如何更新我的数据,并保持HTML标签等格式正确?

编辑:暂时只使用这个临时“修复”,但我想要更强大的东西。

<div contenteditable="true" ng-bind-html="field.content" 
ng-blur="saveHTML($event)"></div>

$scope.saveHTML = function(event) {
    this.field.content = event.target.innerHTML;
}

您可以尝试使用ngModel指令:

<div contenteditable="true"
     ng-bind-html="field.content"
     ng-model="field.content">
  HTML content here
</div>

有没有办法配置 ng-bind-html 它呈现像' <!--'?</div--><div id="text_translate"><p> 似乎 ng-bind-html 正在像关闭标记一样呈现'&lt;/' ,因此它已被清理,并且字符串已通过,但它在 html 中呈现为关闭标记,这意味着什么都没有显示。 比如'我发现&lt;/是个好东西',如果我把字符串绑定到它上面, &lt;/之后的所有东西都会被截掉,它只在web页面显示'我发现'</p><p> (补充)问题实际上是我们同时混合使用html编码和url编码,现在前端的输入就像' &lt;/是好的',然后有一个服务对其进行编码,之后编码,它变成'&amp;lt%2F是好的',在它进入数据库之前,它变成'&amp;lt/是好的',当我们取回数据时,ng-bind-html把它捡起来,因为' &lt;/是好的'。 但是我们有一个使用 ng-model 来编辑它的输入字段,因此 ng-model 将其选为 '$lt/ is good',这与数据库相同。 所以在我们编辑它之前,我们在 controller 中做了一个 replace() function,所以我们暂时修复了这个问题。 但是还是不知道对不对,即使在stackoverflow本身也存在类似的问题,可以看到&lt;/有灰色背景,因为stackoverflow富文本编辑器不把它当作普通字符串,所以我做了反引号转义此特定字符串以在文本编辑器中显示。</p></div>

[英]Is there a way to configure ng-bind-html that it renders a string like '</'?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在Angular js中使用ng-bind-html实现对contenteditable元素的双向绑定? 我如何在ng-bind-html中使用ng-click 切换ng-bind-html ng-bind-html无法正常工作 AngularJS ng-bind-html ng-bind-html为空 有没有办法配置 ng-bind-html 它呈现像' <!--'?</div--><div id="text_translate"><p> 似乎 ng-bind-html 正在像关闭标记一样呈现'&lt;/' ,因此它已被清理,并且字符串已通过,但它在 html 中呈现为关闭标记,这意味着什么都没有显示。 比如'我发现&lt;/是个好东西',如果我把字符串绑定到它上面, &lt;/之后的所有东西都会被截掉,它只在web页面显示'我发现'</p><p> (补充)问题实际上是我们同时混合使用html编码和url编码,现在前端的输入就像' &lt;/是好的',然后有一个服务对其进行编码,之后编码,它变成'&amp;lt%2F是好的',在它进入数据库之前,它变成'&amp;lt/是好的',当我们取回数据时,ng-bind-html把它捡起来,因为' &lt;/是好的'。 但是我们有一个使用 ng-model 来编辑它的输入字段,因此 ng-model 将其选为 '$lt/ is good',这与数据库相同。 所以在我们编辑它之前,我们在 controller 中做了一个 replace() function,所以我们暂时修复了这个问题。 但是还是不知道对不对,即使在stackoverflow本身也存在类似的问题,可以看到&lt;/有灰色背景,因为stackoverflow富文本编辑器不把它当作普通字符串,所以我做了反引号转义此特定字符串以在文本编辑器中显示。</p></div> 如何在遍历数组的ng-repeat中设置双向数据绑定? 在AngularJS中将服务函数与ng-bind-html一起使用 Cordova-angualrjs- <a>在html内,如何</a>阻止默认值<a>,如果ng-bind-html</a>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM