Javascript 更新列表时的角度过滤器行为

Javascript 更新列表时的角度过滤器行为,javascript,angularjs,filter,Javascript,Angularjs,Filter,我有两个ng repeat,其中第一个列表中的选定项通过对象属性过滤第二个列表。然后有可能将项目添加到两个列表中。这里说明了结构: <div class="list-container"> <div class="list-item" ng-repeat="class in classList" ng-click="setActiveClass(class)"> {{class.name}} </d

我有两个ng repeat,其中第一个列表中的选定项通过对象属性过滤第二个列表。然后有可能将项目添加到两个列表中。这里说明了结构:

<div class="list-container">
    <div class="list-item"
         ng-repeat="class in classList"
         ng-click="setActiveClass(class)">
        {{class.name}}
    </div>
</div>

<div class="input-group">
    <input type="text" ng-model="newClassName">
    <button ng-click="addNewClass()">Add</button>
</div>

<div class="list-container">
    <div class="list-item"
         ng-repeat="item in itemsList | filter:{class: activeClass}">
        {{item.name}}
    </div>
</div>

<div class="input-group">
    <input type="text" ng-model="newItemName">
    <button ng-click="addNewItem()">Add</button>
</div>

问题是,当添加新类项时,第二个列表显示所有项,就像没有过滤器一样。如果我选择新类以外的任何类,则过滤器将按预期工作,但在新类上,过滤器将显示数组中的所有元素。可能会发生什么?

您可能需要在筛选器周围加括号:
ng repeat=“item in(itemsList | filter:{class:activeClass})”
@DavinTryon请原谅我发布的问题不完整。现在读它,它是完整的。我尝试添加了括号,但没有解决问题。这是按照您的意愿工作还是我误解了@tasseKATT是的,这是预期的行为,您是否对我发布的代码进行了任何更改(我没有看到任何更改)?这不是原始代码,因为我不能在这里发布,只是一个草图,我希望可以重现这个问题。在最初的情况下,列表包含对象并从工厂服务链接到,这可能是相关的吗?我没有更改任何内容。我想可能会,很难说没有看到代码,对不起。
.controller('controller', function () {

    $scope.classList = [
        {
            'name': 'Class 1'
        },
        {
            'name': 'Class 2'
        },
        {
            'name': 'Class 3'
        }
    ];

    $scope.itemsList = [
        {
            'name': 'Item 1',
            'class': $scope.classList[0]
        },
        {
            'name': 'Item 2',
            'class': $scope.classList[1]
        },
        {
            'name': 'Item 3',
            'class': $scope.classList[2]
        }
    ];

    $scope.activeClass = {};

    $scope.setActiveClass = function (newActiveClass) {
        $scope.activeClass = newActiveClass;
    };

    $scope.addNewClass = function () {
        var nl = $scope.classList.push({
            'name': $scope.newClassName
        });

        $scope.activeClass = $scope.classList[nl-1];
    };

    $scope.addNewItem = function () {
        $scope.itemsList.push({
            'name': $scope.newItemName,
            'class': $scope.activeClass
        });
    };
});