Я пытаюсь изменить переменную папок (массив) внутри оператора return моей угловой фабрики, но она, похоже, работает только для созданного действия, которое я написал. Я думаю, что не понимаю, как переменная область работает на заводе.переменная область в угловой фабрике
это работает:
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;
}
}
});
создать функция возвращает обновленную папку вар но уничтожить функция возвращает не-измененные папки вара.
Убрал указатель и изменил «folders =» на метод сплайсинга, чтобы изменить фактический массив. Благодарю. – armynante