Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度过滤不会保留对类的更改_Javascript_Html_Angularjs_Angular Filters - Fatal编程技术网

Javascript 角度过滤不会保留对类的更改

Javascript 角度过滤不会保留对类的更改,javascript,html,angularjs,angular-filters,Javascript,Html,Angularjs,Angular Filters,好的,我有一个arraylist,我重复了一遍: <div class="row"> <input type="text" data-ng-model="name" class="resource-search" placeholder="Insert a resource name"> </div> <div class="row">

好的,我有一个arraylist,我重复了一遍:

<div class="row">
            <input type="text" data-ng-model="name"
                class="resource-search" placeholder="Insert a resource name">
        </div>
        <div class="row">
            <div
                data-ng-repeat="resource in allResources | resourceFilter:name"
                data-ng-click="addResourceToProject(resource, $event)"
                class="col-md-2">
                <resource profile="resource"></resource>
            </div>
然后我尝试调整控制器中单击的每个资源:

$scope.addResourceToProject = function(resource, event) {

    var elementIsImage = event.target.tagName.toLowerCase() === 'img';
    if(index >= 0) {
        resources = $scope.projectList[index].resources;
    } else {
        resources = shareService.getResourcesToNewProject();
    }

    if(elementIsImage) {
        var target = $(event.target);
        if(target.hasClass('picked')) {
            var elementIndex;
            resources.forEach(function(res) {
                if(res.id === resource.id) {
                    elementIndex = resources.indexOf(res);
                }
            });
            resources.splice(elementIndex, 1);
            target.removeClass('picked');
        } else {
            target.addClass('picked');
            resources.push(resource);
        }
    }
};
如果不使用搜索栏,则一切正常。使用搜索栏时,类中以前的更改将被丢弃,即使用搜索栏查找资源并单击它,类中的更改将应用,一切正常。如果再次使用搜索栏,则类中的旧更改将被丢弃,但新更改将应用。“添加到数组”正在按预期工作


提前感谢。

好的,将带有ng类的类直接添加到DOM中就成功了,我假设所有过滤对象在某个级别上都是临时的,这意味着从控制器更改它们意味着更改临时对象,因此更改只会停留在第一次搜索中,解决方案:

<img data-ng-src="{{ profileimg }}" data-ng-class="{'picked': profile.picked}"></img>

<img data-ng-src="{{ profileimg }}" data-ng-class="{'picked': profile.picked}"></img>