ng-repeat with filter on some view bug my $ index

时间:2015-12-17 09:24:55

标签: angularjs mongodb filter angularjs-ng-repeat

我有2个视图

view1.html

<li ng-repeat="post in posts | filter: { section: 'principal'} ">

view2.html

<li ng-repeat="post in posts | filter: { section: 'bug' } ">

你可以在view1上看到我有一个过滤器,只显示有关view2的“principal”和“bug”部分的帖子。

现在我添加一个值为“principal”的新帖子,帖子出现在view1中($ index = 1)。
在视图2中添加值为“bug”($ index = 2)的帖子后。 Finnaly我再次在view1($ index = 3)

中添加一个新帖子

对于简历,我在view1上有2个帖子,在view2中有1个帖子

但是如果点击view2上的帖子,我的$ index会出现问题,他看到他在列表的第一个位置,所以他接受了index1并更改了我在view1中创建的第一个帖子。

如何解决此问题?

我希望我已经清楚地说明了这一点。 谢谢你的回答

编辑:
这是他调用函数passerDroite

的按钮
<a class="waves-effect white-text" ng-show="!editing[$index]" ng-click="passerDroite($index)"> >> </a>

这是她刚修改“etat”的功能:

 $scope.passerDroite = function(index){
        var post = $scope.posts[index];
        post.etat = "enCours";
        Posts.update({id: post._id}, post);
        $scope.editing[index] = false;
    }

编辑时我遇到了一些问题:

    $scope.editing = [];
    $scope.posts= Posts.query();

    $scope.edit = function(index){
    $scope.editing[index] = angular.copy($scope.posts[index]);
    }

我试试这个:

 $scope.edit = function(post){
    post = angular.copy(post);
 } 

是否可以找到帖子的索引?喜欢post.index?

1 个答案:

答案 0 :(得分:0)

这是一个已知问题 - 尝试传入实际对象而不是索引,因为Johannes Jander已经指出ng-click="passerDroite(post)"function(post){