首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-repeat with filter not updating

ng-repeat with filter not updating
EN

Stack Overflow用户
提问于 2015-08-14 03:39:47
回答 1查看 2K关注 0票数 0

我正在构建一个离子应用程序。我有一个状态,在那里用户可以看到他们所有的帖子。每个帖子都有很多字段,其中一个是'active‘--布尔型字段。

我通过以下方式呈现该列表:

代码语言:javascript
复制
<ion-item ng-repeat="post in posts | filter:{active:true}" ng-click="goToPost(post.id)" 
          class="item item-thumbnail-left">
  <some fields here />
</ion-item>

则用户具有去激活帖子的选项。

代码语言:javascript
复制
<ion-option-button class="button-assertive" ng-click="deactivate(post.id, $index)">
  DEACTIVATE
</ion-option-button>

该选项向后端发出请求,并在本地将post的active字段设置为"false“。停用完成后,我无法让ng-repeat重新过滤列表-因为当前帖子应该不再出现在活动帖子列表中。

我尝试了$scope.$apply(),它抛出了$digest错误...我尝试添加ng-change和ng-model,但也不起作用。我也尝试过完全重新加载状态,但由于某些原因,我无法完成此操作。有谁可以帮我?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-08-14 04:00:34

Look at the fiddle

代码语言:javascript
复制
<div ng-app="app" ng-controller="demoController">
    <ion-item ng-repeat="post in data | filter:{activated:true}" ng-click="deativate(post.id)">
        {{post.col1}}  {{post.activated }} {{"click Me"}} </br>
</ion-item>
</div>


var app= angular.module("app",[]);
app.controller('demoController', ['$scope', 
  function($scope) {
    $scope.data = [
        {id:1,col1:"abc",activated:true},
        {id:2,col1:"abc1",activated:true},
        {id:3,col1:"abc2",activated:true},
        {id:4,col1:"abc3",activated:true},
        {id:5,col1:"abc4",activated:false},
        {id:6,col1:"abc5",activated:true},
            ];

      $scope.deativate = function(id){

        angular.forEach($scope.data,function(item){
            if(item.id === id){
                item.activated = false;
            }
        })
      }

}]);

对于你的代码,你可以分享你的代码片段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31997025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档