Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将标记的innerHTML呈现为嵌套HTML_Javascript_Html_Json_Angularjs_Model View Controller - Fatal编程技术网

Javascript 如何将标记的innerHTML呈现为嵌套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

我使用AngularJS发出GET请求以接收JSON文档。从这个JSON文档中,经过一些遍历之后,我发现了一个附加JSON文档的数组。通过对该数组中的每个对象进行更多的JSON遍历,生成的内部JSON文档是原始HTML

我试图在一个页面中显示每一个原始HTML,但是,我只能将它们作为一个原始文本等价物,它仅仅显示为文本,而不是实际以HTML呈现

在我的控制器中使用$sce,我可以将数组中一个特定元素上的一个特定路径正确地呈现为HTML,但不能全部呈现

这是我的密码:

//    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当您这样做时会发生什么:
    • 当您这样做时会发生什么: