html - angularjs:依赖于json数据的动态html

标签 html json angularjs angularjs-directive

我想以动态方式显示我的 json 模型的内容,具体取决于提供的 json。我用ng-repeat循环遍历我的数据并希望显示一个 html 模板来填充取决于遇到的数据类型的数据。

JSON

{
    "elements": [
        {
            "type": "input-text",
            "desc": "Full Name"
        },
        {
            "type": "input-checkbox",
            "desc": "Accept Terms"
        }
    ]
}

这应该会产生不同的 html 代码,并适当填充 json 内容。

例如

<div><label>Full Name</label> <input type="text"></div>
<div><input type="checkbox"> <label>Accept Terms</label></div>

现在我所做的是使用 angularjs 指令创建一个元素并将 json 值添加到正确的位置。 e.g. element.html('<div><input type="checkbox"> <label>' + scope.item.desc + '</label></div>')这似乎是 jquery 的方式(或更糟)来做到这一点,尽管我想以“正确”的 angularjs 方式来做。

如何根据遇到的 JSON 数据使用不同的 HTML 模板填充内容?

PS:上面的例子是一个简单的例子,遇到的数据远比切换label的位置复杂得多。和input字段。

最佳答案

您需要做的就是在范围上设置数据,然后使用 ng-repeat directive在 HTML 中输出它:

Controller :

.controller('MyData', function ($scope) {
    $scope.myModel = {
        elements: [ { desc: .. }, .. ]
    };
})

您将使用$http service或此 Controller 中的其他适当方法,用数据填充 myModel ,但最终数据需要以某种方式结束在 $scope 对象上。然后模板的工作就是显示该数据:

<div ng-controller="MyData">
    <ul>
        <li ng-repeat="element in myModel.elements">
            {{ element.desc }}
        </li>
    </ul>
</div>

关于html - angularjs:依赖于json数据的动态html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29295564/

相关文章:

html - 从底部到顶部堆叠多个 div

jquery - 在从 ng-repeat 生成的 li 上显示背景色

javascript - AngularJS 中的 "Cannot set property of undefined"错误

javascript - 如果 QuestionID 相同,如何更新 setState 中的对象,否则添加到 setState

java - 使用 GSON 将 JSONObject 转换为 JSON

css - 带 div 的表格布局

html - 单击以显示 CSS 工具提示

javascript - 使用 Angular.js 在每一行中为数据表 jQuery 添加一个复选框

angularjs - 注入(inject)动态 html 似乎无法编译

javascript - 更改 Angular Controller 变量