javascript - Angularjs 计算标记中 ng-show 的出现次数

标签 javascript angularjs ionic-framework

我有一个带有多个过滤器的 ng-repeat 和一个 ng-show 验证,该验证在 ng-repeat 中显示一个指示器(徽章):

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

我需要计算有多少个验证是正确的。我知道可以在之前循环遍历数组并计算 Controller 中的出现次数,但是有没有一种方法可以直接在标记中执行此操作,因为 ng-repeat 已经在执行循环了?

更新

我尝试使用:

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

这不起作用。

还尝试了 Controller 中的一个功能:

$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 循环,它会“工作”,但 View 会在 15 分钟验证后更新,但我的计数器不会。

我必须补充一点,我正在使用 Ionic 框架。

最佳答案

我通过添加解决了这个问题:

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;
  }
};

关于javascript - Angularjs 计算标记中 ng-show 的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32419487/

相关文章:

javascript - JSP 格式与日期问题

javascript - 类型错误 : parsed is undefined on angularjs service unit test

html - Ionic 元素行中具有不同宽度的多列

javascript - 不确定如何使用 AJAX

JavaScript TypedArray 混合类型

javascript - Access-Control-Allow-Origin 不允许 Origin null。 :1 in android web view?

javascript - 带有单选框的 ng-repeat 表的键盘控制

angularjs - 创建一个像 AngularJs Material 网站一样的菜单

angular - native ionic 网络状态不适用于我的代码

ionic-framework - 如何等待 PouchDB 成功连接