gpt4 book ai didi

angularjs - 使用 Angular 从 Kendo Editor 渲染 HTML 预览

转载 作者:行者123 更新时间:2023-12-01 03:32:19 24 4
gpt4 key购买 nike

我正在尝试使用 Angular 实现 Kendo UI Editor,根据其演示网站上的示例。到目前为止,它运行良好;

kendo ui demos

这是我目前所拥有的,但我遇到的问题实际上是呈现编辑器内容的完全解析的预览。当我使用 ng-bind-html 时,它在页面首次加载时起作用,但随后的任何后续编辑都会将 HTML 插入其中。我认为答案是使用 kendo.htmlEncode,但这也不起作用。我并没有像我想的那样完全掌握它......

我已经准备了一个 jsBin 来显示出了什么问题,并在此处发布了我的代码以供审核。

jsBin

应用程序.js

(function(){
var app = angular.module("kendoDemos", [ 'kendo.directives', 'ngSanitize' ]);
app.controller('EditorController', function($scope, $sce){
$scope.html = "<h1>Kendo Editor</h1>\n\n" +
"<p>Note that 'change' is triggered when the editor loses focus.\n" +
"<br /> That's when the Angular scope gets updated.</p>";
});
app.directive('kendoHtml', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
return element.html(kendo.htmlEncode(scope[attrs.kendoHtml]));
}
};
});
})();

html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/kendo.css" />

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript" src="js/angular.js"></script>
<script type="text/javascript" src="js/angular.sanitize.js"></script>
<script type="text/javascript" src="js/kendo.js"></script>

<script type="text/javascript" src="js/app.js"></script>
</head>
<body>
<div ng-app="kendoDemos">
<div ng-controller="EditorController" class="container">
<h2>Kendo Editor</h2>
<textarea kendo-editor ng-model="html"></textarea>
<h3>Kendo Editor Preview</h3>
<blockquote kendo-html="html"></blockquote>
</div>
</div>
</body>
</html>

最佳答案

你需要做两件事:

  1. 防止编辑器对其值进行编码。

    <textarea kendo-editor ng-model="html" k-encoded="false"></textarea>
  2. 避免使用 kendo.htmlEncode,因为它会再编码一次。

    scope.$watch(attrs.kendoHtml, function() {
    element.html(scope[attrs.kendoHtml]);
    });

这是更新后的 jsbin:http://jsbin.com/bibecima/1/edit

您还可以使用 ng-bind-html 来避免自定义指令的需要:http://jsbin.com/kamenoju/1/edit .一旦您将 encoded 选项设置为 false,它将按预期工作。

关于angularjs - 使用 Angular 从 Kendo Editor 渲染 HTML 预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com