Angularjs计算标记中的ng-show事件

时间:2015-09-06 02:35:50

标签: javascript angularjs ionic-framework ionic

我有一个带有几个过滤器的ng-repeat和一个ng-show验证,显示ng-repeat中的指示符(标记):

ng-show="(item.localDate | amDifference : lastRefreshDate : 'minutes')>=-15 && !item.state"

我需要计算这些验证中有多少是真的。我知道可以在数组之前循环并计算控制器中的发生次数,但有没有办法在标记中直接进行,因为ng-repeat已经在循环中了?

更新

我尝试使用:

ng-init="total = (item.localDate | amDifference : lastRefreshDate : 'minutes')>=-15 && !item.state ? total+1 : total"

哪个不起作用。

还尝试了控制器中的一个功能:

$scope.iter = function(item) {
  var localDate = moment(item.localDate);
  var diff = localDate.diff(angular.copy($scope.lastRefreshDate), 'minutes');
  if (diff >= -15 && item.state === 0) {
    $scope.newFeeds += 1;
  }
};

在模板中调用它:

{{iter(item))}}

但它会让应用程序循环直到它崩溃。

我尝试创建一个指令,但我很难将值分配给父作用域,同时还从模板传递变量。

如果我手动执行另一个for循环,它"工作"但是在15分钟验证后视图会更新,但我的计数器没有。

我必须补充说我正在使用Ionic Framework。

1 个答案:

答案 0 :(得分:0)

我通过添加:

解决了这个问题
ng-init="iter(item)" 
在ng-repeat语句中

致电:

$scope.iter = function(item) {
  var localDate = moment(item.localDate);
  var diff = localDate.diff(angular.copy($scope.lastRefreshDate), 'minutes');
  if (diff >= -15 && item.state === 0) {
    $scope.newFeeds += 1;
  }
};