0
好了類,所以我有一個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>
而且我使用它的自定義過濾器:
app.filter('resourceFilter', function() {
return function(input, text){
input = input || [];
var out = [];
input.forEach(function(res) {
if(res.name.toUpperCase().startsWith(text.toUpperCase())) {
out.push(res);
}
});
return out;
};
});
而且然後我嘗試調整每個在控制器中點擊的資源:
$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);
}
}
};
如果您不使用s搜索欄,當使用搜索欄時,以前的類更改被丟棄,即使用搜索欄查找資源並單擊它,類中的更改適用並且一切正常,然後如果再次使用搜索欄,則舊的更改在課堂上被丟棄,但新的適用。數組的添加按照預期工作。
在此先感謝。