javascript - 将 HTML 元素附加到现有元素的 AngularJS 指令

标签 javascript jquery html json angularjs

我有一个AngularJS , JS , JQ , HTML5 Web 应用程序,能够发送不同的 HTTP我们项目的方法RESTful Web Service并在 JSON 中收到回复.

看起来像这样:

enter image description here

我想要的是创建一个AngularJS directive ,可以接受 JSON对象并创建 <li>对于它找到的每个 JSON 属性。如果属性本身是一个对象 - 应该递归调用该函数。

基本上,我搜索一种解析 JSON 的方法以如下 JSON 的方式对象到 HTML 元素:

{
    "title": "1",
    "version": "1",
    "prop" : {
         "a" : "10",
         "b" : "20",
         "obj" : {
              "nestedObj" : {
                   "c" : "30"
               } 
          }
     }
}

将被转换为以下html:

<ul>
    <li>title : 1</li>
    <li>version : 1</li>
    <li>
        prop : 
        <ul>
            <li>a: 10</li>
            <li>b: 20</li>
            <li>
                obj : 
                <ul>
                    <li>
                        nestedObj : 
                        <ul>
                            <li>c : 30</li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

有谁知道如何使用 AngularJS 指令来实现这一点?每个有用的答案都受到高度赞赏和评价。

谢谢。

最佳答案

我通过递归包含指令来尝试此操作。但这似乎真的很难看。

我的解决方案就像用递归方法生成的普通旧 html 并附加为元素:

//recursivly generate the object output
scope.printObject = function (obj, content) {
    content = "<ul>";
    for (var i in obj) {
       if (angular.isObject(obj[i])) {
           content += "<li>"+i+""+scope.printObject(obj[i])+"</li>";
       } else {
           content += "<li>" + i + ":" + obj[i] + "</li>";
       }
    }
    content+="</ul>";
    return content;
 };

完整的工作代码在这里:

http://jsfiddle.net/zh5Vf/1/

关于javascript - 将 HTML 元素附加到现有元素的 AngularJS 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23104269/

相关文章:

javascript - 如何在 TinyMCE 中创建更新模板变量?

javascript - 创建一个接受字符串并将重复值分组的函数

javascript - 如何从浏览器中删除统一堆内存?

javascript - 如何更改标题/ View 的颜色

javascript - $.ajax().done() 中的 window.open 和弹出窗口拦截器

javascript - 将全局函数包装在 (function($){ }(jQuery) 中

javascript - Jquery trim 不工作日语空格

javascript - 从 javascript 显示 html

html - 如何将 R Markdown block 放在不同的 HTML 标签中?

javascript - 如何将输入目标值和 setState 值作为参数传递给辅助函数?