当前位置: 首页 > 面试题库 >

Angular JS以树状格式呈现JSON

缪升
2023-03-14
问题内容

如何像使用http://jsonviewer.stack.hu/那样以树状方式渲染JSON ?


问题答案:

您感兴趣的技术是“ 递归指令 ”。如果您尚不知道如何编写指令,则应首先开始学习它。Angular
JS官方文档在解释指令创建自定义指令方面做得更好

一旦知道如何编写自定义指令,就可以了解递归指令。我发现此Google网上论坛线程很有帮助:递归指令。尤其是,我发现该线程中的
Mark Lagendijk的Recursion Helper服务 非常有用。

确保在那里检查示例。与您相关的一些示例是:

plnkr
jsfiddle

在上面的jsfiddle示例中,请看一下:

module.directive("tree", function($compile) {
    return {
        restrict: "E",
        transclude: true,
        scope: {family: '='},
        template:       
            '<ul>' + 
                '<li ng-transclude></li>' +
                '<p>{{ family.name }}</p>' + 
                '<li ng-repeat="child in family.children">' +
                    '<tree family="child"></tree>' +
                '</li>' +
            '</ul>',
        compile: function(tElement, tAttr, transclude) {
            var contents = tElement.contents().remove();
            var compiledContents;
            return function(scope, iElement, iAttr) {
                if(!compiledContents) {
                    compiledContents = $compile(contents, transclude);
                }
                compiledContents(scope, function(clone, scope) {
                         iElement.append(clone); 
                });
            };
        }
    };
});

我上面提到的Mark Lagendijk的递归帮助器服务摘录了上面的某些代码。

最后,我实现了 angular-json-human
,它以嵌套表结构呈现JSON,这使得人类更容易阅读。您可以对其进行修改以适合您的需要。演示在这里,仓库在这里

希望这可以帮助!



 类似资料:
  • 我试图通过使用飞碟(9.0.7)库从XHTML生成一个PDF文件。文本和表格按预期呈现,但图像(png)不会显示在最终的PDF中。图像由绝对文件路径引用(例如< code > 我的java代码如下: 任何帮助都将不胜感激。

  • 问题内容: 如何呈现以下选项列表的值? 预期结果(预期为value =“ limit.value”: 结果: 问题答案: 该指令未在元素上设置属性。它始终使用序列。 使用方式: 将的标签设置为 将值保存到选择的 检查此小提琴:http : //jsfiddle.net/bmleite/k58Hw/

  • 我使用Apache FOP生成PDF,有些页面需要SVG。在大多数情况下,在我添加TextPath元素之前,这都很好。我用这个来得到曲线文本。此SVG在浏览器中工作,但在PDF中不工作。维基百科显示Batik(Apache FOP的SVG渲染器)与TextPath兼容:https://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Scala

  • 问题内容: 我将AngularJS与生成html响应的第三方服务一起使用。我想使用ng-repeat将HTML响应呈现为列表,但是Angular将其呈现为文本。 是否可以使用ng-repeat呈现HTML属性? 我创建了这个jsFiddle来演示我的问题。 http://jsfiddle.net/DrtNc/1/ 问题答案: 我认为使用可以满足您的需求。 这是一个有效的小提琴:http : //j

  • 如何呈现以下选项列表的值? 预期结果(预期值="limit.value": 结果:

  • 我完全不明白这个问题。如果我在作为java应用程序运行时从main方法尝试,那么邮件以正确的主题和内容格式完美地出现。而当我从localhost尝试时,它以错误的格式出现,例如 ------=_Part_0_1765202668.1460463643056Content-Type: text/html; charset=utf-8 Content-Transfer-编码: 7bit 我的内容 --