gpt4 book ai didi

css - 带有 css 的 Angular HTML 预览

转载 作者:行者123 更新时间:2023-12-02 04:51:07 26 4
gpt4 key购买 nike

我正在使用 angular js 构建应用程序,它具有在用户在 textarea 上编写 html 后直接显示 HTML 预览的功能。
但是当用户在 textarea 上输入样式时,我坚持如何为 html 本身隔离 css。预览中的 HTML css 不应覆盖主 css。

这是我的剪辑:

显示 html 预览的指令:

app.directive('htmlViewer', ['$sce', function($sce){
return {
scope: {
htmlViewer: '=',
},
template: "<div ng-bind-html='trustedHtml'></div>",
link: function($scope, iElm, iAttrs, controller) {
$scope.updateView = function() {
$scope.trustedHtml = $sce.trustAsHtml($scope.htmlViewer);
}

$scope.$watch('htmlViewer', function(newVal, oldVal) {
$scope.updateView(newVal);
});
}
};
}]);

和 View 类似:
<div html-viewer="myHtmlModel.content"></div>

我应该怎么做才能实现该功能?因此 html 预览及其 css 不会覆盖主应用程序的 css。抱歉,我对 angular 比较陌生。

编辑
这是我在 textarea 上的示例 html
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Template</title>
<style>

/* -------------------------------------
GLOBAL
------------------------------------- */
body {
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
width: 100%;
min-width:300px;
max-width:680px;
margin:0 auto;
height: 100%;
background:#f6f6f6!important;
}


</style>
</head>

<body bgcolor="#f6f6f6">

<!-- content -->
<div class="content">
Lorem ipsum dolor sit amet
</div>
<!-- /content -->
</body>
</html>

非常感谢您的帮助或建议。

谢谢

解决方案

最后,我使用 iframe 来解决这个问题。通过创建新指令并与前一个指令结合。
app.directive('framePreview', function($compile) {
return function($scope, $element) {
var $body = angular.element($element[0].contentDocument.body),
template = $compile('<div html-viewer="myHtmlModel.content"></div>')($scope);
$body.append(template);
};
});

然后在我看来:
<iframe frame-preview="" width="100%" height="500px"></iframe>

最佳答案

可以改用 iframe 吗? jsFiddle、jsBin 等网站也使用 iframe 进行代码预览

关于css - 带有 css 的 Angular HTML 预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28207034/

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