AngularJS:根据模型类型显示适当的表单元素

时间:2014-11-25 15:46:03

标签: javascript angularjs

我有一个ConfigValues的Angular模型。基本上它是从C#传入的Dictionary,看起来有点像:

{
   Name: "Config Name",
   Value "True",
   Type: 0 // boolean
}

有些是布尔值,有些是整数等。我想要的是在遇到bool类型时智能地显示checkbox(或者可能是select)然后显示正常{{ 1}}当我看到另一种类型时。

我该怎么做?

input

1 个答案:

答案 0 :(得分:3)

尝试ngIf

<table>
    <tr ng-repeat="(key, val) in module.ConfigValues">
        <td>{{key}}</td>
        <td>
            <input type="text" ng-model="val.Value" ng-disabled="module.saving" ng-if="val.Type !== 0" />
            <input type="checkbox" ng-model="val.Value" ng-disabled="module.saving" ng-if="val.Type === 0" />
        </td>
    </tr>
</table>

如果您想要更多类型,也许可以尝试使用ngSwitch

<table>
    <tr ng-repeat="(key, val) in module.ConfigValues">
        <td>{{key}}</td>
        <td>
            <span ng-switch="val.Type">
                <input type="checkbox" ng-model="val.Value" ng-disabled="module.saving" ng-switch-when="0" />
                <input type="text" ng-model="val.Value" ng-disabled="module.saving" ng-switch-default="0" />
            </span>
        </td>
    </tr>
</table>