0

我在尝试将一个软件从 Knockout.js 转换为 Angular.js 时遇到了一点问题

假设我从数据库返回了以下数据:

{
    id: "Some ID",
    title: "Some Template",
    fields: [
        {type: "radio", title="Some Title", description: "Some Description},
        {type: "textbox", title="Some Title", description: "Some Description},
        {type: "radio", title="Some Title", description: "Some Description}
    ]
}

在 Knockout.js 中,我可以简单地创建 if 语句,允许我像这样放入适当的 html:

<!-- ko foreach: $parent.myData.fields -->
    <!-- ko if: $data.type === "textbox" !-->
        <input type="textbox" id="whatever" />
    <!-- /ko -->
<!-- /ko -->

我不知道如何在 Angular 中复制上述行为。我会使用自定义指令吗?如果是这样,它将如何构建?

目前我正在尝试类似的东西:

<div ng-repeat="field in review.fields">
    <div class="review-temp-left">
        <div class="title">{{ field.title }}</div>
        <div class="desc">{{ field.description }}</div>
    </div>
    <div class="review-temp-right">
    <!-- NEED TO MAKE THIS AREA LOAD APPROPRIATE HTML FOR INPUT TYPE -->
    </div>
</div>

任何帮助将非常感激。

谢谢,

阿里克

4

1 回答 1

1

正如评论中所讨论的,ng-switch可用于将适当的 HTML 内容添加到 DOM,基于type.

请注意,ng-show/ng-hide 目前并不像 ng-switch 那样从 DOM 中添加/删除内容——它们只操纵 CSS 属性来隐藏/显示 DOM 内容。

于 2013-03-22T16:01:45.003 回答