有条件地显示表单元素

时间:2015-08-20 13:23:14

标签: angularjs

建立一个网站,用户可以浏览存储过程列表,并可以选择它,设置参数。然后返回的数据将以图表或表格的形式显示。所以我已经过了一半,但现在正在思考如何显示参数的表单输入。因此,我将返回包含所选存储过程类型的参数列表。

{  
   "DataSourceId":"21",
   "Params":[  
      {  
         "Id":"1",
         "Name":"DateFrom",
         "TypeId":"3"
      },
      {  
         "Id":"2",
         "Name":"DateTo",
         "TypeId":"3"
      },
      {  
         "Id":"3",
         "Name":"LineID",
         "TypeId":"1"
      },
      {  
         "Id":"4",
         "Name":"MachineID",
         "TypeId":"2"
      }
   ]
}

如何有条件地显示表单输入元素(日期选择器,选项选择等)。 ng-required或ng-show不起作用,因为我不知道我将拥有多少参数。自定义指令?不知道从哪里开始。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以将ng-repeat与嵌套ng-switch一起使用。然后使用ng-switch-when更改行为,具体取决于您在ng-switch使用的字段。

<span ng-repeat="param in Params">
    <span ng-switch on="param.TypeId">
        <div ng-switch-when="1"> <!-- your type 1 form --></div>
        <div ng-switch-when="2"> <!-- your type 2 form --></div>
        <div ng-switch-when="3"> <!-- your type 3 form --></div>
    </span>
</span>