Javascript 如何将标记的innerHTML呈现为嵌套HTML
我使用AngularJS发出GET请求以接收JSON文档。从这个JSON文档中,经过一些遍历之后,我发现了一个附加JSON文档的数组。通过对该数组中的每个对象进行更多的JSON遍历,生成的内部JSON文档是原始HTML 我试图在一个页面中显示每一个原始HTML,但是,我只能将它们作为一个原始文本等价物,它仅仅显示为文本,而不是实际以HTML呈现 在我的控制器中使用$sce,我可以将数组中一个特定元素上的一个特定路径正确地呈现为HTML,但不能全部呈现 这是我的密码:Javascript 如何将标记的innerHTML呈现为嵌套HTML,javascript,html,json,angularjs,model-view-controller,Javascript,Html,Json,Angularjs,Model View Controller,我使用AngularJS发出GET请求以接收JSON文档。从这个JSON文档中,经过一些遍历之后,我发现了一个附加JSON文档的数组。通过对该数组中的每个对象进行更多的JSON遍历,生成的内部JSON文档是原始HTML 我试图在一个页面中显示每一个原始HTML,但是,我只能将它们作为一个原始文本等价物,它仅仅显示为文本,而不是实际以HTML呈现 在我的控制器中使用$sce,我可以将数组中一个特定元素上的一个特定路径正确地呈现为HTML,但不能全部呈现 这是我的密码: // controll
// controller:
$scope.latestEmails = function() {
$http.get('/emails/last/'+$scope.numberOfEmails).success(function(response) {
$scope.insertHtmlHere = $sce.trustAsHtml(response.body[0].body[0].content);
$scope.latestEmails = response.body;
});
}
// HTML
<div ng-bind-html="insertHtmlHere"></div> <!-- works for that one given element -->
<ul>
<li ng-repeat="email in latestEmails">{{email.body[0].content}} <!-- raw text displayed --></li>
</ul>
//控制器:
$scope.latestEmails=函数(){
$http.get('/emails/last/'+$scope.numberOfEmails).success(函数(响应){
$scope.insertHtmlHere=$sce.trustAsHtml(response.body[0].body[0].content);
$scope.latestEmails=response.body;
});
}
//HTML
- {{email.body[0].content}
ng绑定html正确地替换了数组html中的第一个对象。ng repeat部分只是将HTML文本块(未呈现为HTML)放在列表中(屏幕截图:)
有没有办法将my ng repeat中收到的HTML文本呈现为完整HTML?我是否可以使用不同的AngularJS方法来实现这一点
任何帮助或建议都将不胜感激 经过大量的循环和连接技巧,我找到了答案。基本上,我循环遍历HTML文档数组,将每个文档连接在一起,并显示连接的HTML 以下是我的解决方案代码:
// Controller:
$http.get('/emails/last/'+$scope.numberOfEmails).success(function(response) {
console.log('made a latestEmails get request');
console.log(response);
// get HTML of each email and concatenate together
var concat;
for(var i=0; i<response.body.length; i++) {
var email = response.body[i].body[0].content;
concat+=email;
}
// display the concatenated emails as pure HTML
$scope.insertHtmlHere = $sce.trustAsHtml(concat);
});
// HTML
<div ng-bind-html="insertHtmlHere"></div>
//控制器:
$http.get('/emails/last/'+$scope.numberOfEmails).success(函数(响应){
log('makedalatestemails get请求');
控制台日志(响应);
//获取每封电子邮件的HTML并连接在一起
var concat;
对于(var i=0;i经过大量的循环和连接技巧,我找到了答案。基本上,我循环遍历HTML文档数组,将每个文档连接在一起,并显示连接的HTML
以下是我的解决方案代码:
// Controller:
$http.get('/emails/last/'+$scope.numberOfEmails).success(function(response) {
console.log('made a latestEmails get request');
console.log(response);
// get HTML of each email and concatenate together
var concat;
for(var i=0; i<response.body.length; i++) {
var email = response.body[i].body[0].content;
concat+=email;
}
// display the concatenated emails as pure HTML
$scope.insertHtmlHere = $sce.trustAsHtml(concat);
});
// HTML
<div ng-bind-html="insertHtmlHere"></div>
//控制器:
$http.get('/emails/last/'+$scope.numberOfEmails).success(函数(响应){
log('makedalatestemails get请求');
控制台日志(响应);
//获取每封电子邮件的HTML并连接在一起
var concat;
对于(var i=0;i当您这样做时会发生什么:当您这样做时会发生什么: