我试图在我的角度工厂的返回语句中更改文件夹变量(一个数组),但它似乎只适用于我编写的创建操作。我想我不了解变量范围在工厂中的工作方式。
这有效:
folders.push(response.folder)
但是...当我使用 underscore.js 函数 _without (返回一个数组)时,它不会改变文件夹变量。
folders = _.without(folders, _.findWhere(folders, {id: folder.id }))
这是我的工厂代码:
angular.module('cmsApp')
.factory('Folders', function(Restangular){
var folders = Restangular.all('folders').getList().$object;
return {
get: function(){
return folders;
},
create: function(folderName) {
folder = { label: folderName };
folders.post(folder).then(function(response) {
folders.push(response.folder);
})
return folders;
},
destroy: function(folder) {
folders.remove(folder).then(function(){
folders = _.without(folders, _.findWhere(folders, {id: folder.id }))
})
return folders;
}
}
});
create 函数返回一个更新的文件夹 var,但 destroy 函数返回一个未更改的文件夹 var。