角度重复显示列IF等于值

时间:2015-07-07 03:57:24

标签: sql angularjs

我正在使用angularJS将我的结果集显示到一个表中,该表可以用总数等过滤。我想知道如果它是=的话,是否可以显示基于另一个值的值。这是一个例子:

<tr ng-repeat="c in data">
     <td>{{c.type}}</td> //expects either 'fixed' or 'hourly'
     <td>{{c.fixed_rate}}</td>
     <td>{{c.hourly_rate}}</td>
</tr>

因此,如果类型是固定的,你只能显示固定值吗?如果类型是每小时而不使用任何JQuery来隐藏元素,那么你每小时只能显示一次吗? 我的思绪有点难以理解,因为我只有几个月的角度。

数据是从数据库中提取的*所以如果有一个SQL选项,我就全力以赴。

3 个答案:

答案 0 :(得分:2)

你可以这样做:

<tr ng-repeat="c in data | filter: filterHourlyOrFixed">
     <td>{{c.type}}</td> 
     <td ng-if="c.type == 'fixed'">{{c.fixed_rate}}</td>
     <td ng-if="c.type == 'hourly'">{{c.hourly_rate}}</td>
</tr>

如果您只想过滤这两个值,请将此功能添加到控制器:

$scope.filterHourlyOrFixed = function (item) { 
    return item.type === 'fixed' || item.type === 'hourly'; 
};

如果您不想按值过滤,请从ng-repeat中删除| filter: filterHourlyOrFixed

此外,如果您有时间,请仔细阅读ngIfngShowngHidengFilter的文档。您可能正在使用这些重复。另外,请注意ng-ifng-showng-hide操纵DOM以获得类似结果的差异。

差异很微妙,但很重要。

答案 1 :(得分:1)

使用ng-if根据表达式删除或重新创建DOM的部分内容。例如:

<tr ng-repeat="c in data">
     <td>{{c.type}}</td> //expects either 'fixed' or 'hourly'
     <td ng-if="c.type=='fixed'">{{c.fixed_rate}}</td>
     <td ng-if="c.type=='hourly'">{{c.hourly_rate}}</td>
</tr>

如果要渲染相同的DOM但想要排除某些元素,也可以使用过滤器。

答案 2 :(得分:0)

您可以尝试这样的事情:

<tr ng-repeat="c in data">
     <td ng-if="c.type =='fixed'">Fixed</td>
     <td ng-if="c.type =='hourly'">Hourly</td>
     <td ng-if="c.type =='fixed'">{{c.fixed_rate}}</td>
     <td ng-if="c.type =='hourly'">{{c.hourly_rate}}</td>
</tr>

希望这有帮助!

http://embed.plnkr.co/Wes1Uf1OCCmKYa5wTP5s/preview