ng-if在ng-repeat内部无法正常工作

时间:2016-09-13 13:52:11

标签: angularjs html5 angular-ng-if

我的HTML上有这段代码,我用Angular填充:

<table id="myTable">
    <tr>
        <th>Id</th>
        <th>desc</th>
        <th>prod kg</th>
        <th>index</th>
    </tr>
        <tr ng-repeat="x in maq" ng-if="{{ x.index }}=='0'" id="{{ x.index }}">                   
                <td style="border: 1px solid black;">{{ x.codigo }}</td>
                <td style="border: 1px solid black;">{{ x.desc }}</td>
                <td style="border: 1px solid black;">{{ x.prod_24_h_kg }}</td>
                <td style="border: 1px solid black;">{{ x.index }}</td>
    </tr>
</table>

到目前为止没问题。但是我想为每一行制作和ng-if,如你所见,让我们说:

  

{{x.index}} ==&#39; 0&#39;

我不想让那一行出现。我尝试了很多组合的&#34; &#34;和&#39; &#39;没有成功。有没有人看到解决方案?

2 个答案:

答案 0 :(得分:4)

不需要在{{}}指令中使用插值ng-if指令,它直接采用将根据当前范围进行评估的表达式。

ng-if="x.index ==0"

实现同样的事情的另一个选择是使用过滤器。

ng-repeat="x in maq | filter: {index: 0} as filterdMaq"

控制器内部可能会发生相同的过滤事件,这也有助于提高性能。

$http.get('data.json').then(function(response){
    $scope.dataCopy = response.data; //this is original copy of an maq.
    //filtered maq
    $scope.maq = $filter('filter')(angular.copy($scope.dataCopy), { index: 0}, true);
});

答案 1 :(得分:1)

您无需使用{{}}。只需打印x.index =='0'

即可