Javascript 角度过滤不会保留对类的更改
好的,我有一个arraylist,我重复了一遍: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">
<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>