Я (пере) изучаю angularjs, потому что мне нужно перенести существующий код в другую среду.
У меня есть контроллер, который отвечает за управление сохраненным списком избранного, отображаемым в таблице. Избранное сохраняется в коллекции mongodb. Это выглядит так:
export const favoritesController = ($scope, getFavorites, removeFavorites) => {
getFavorites.then(favs => {
$scope.favorites = favs;
});
// Called when a button is clicked
// to remove selected favorites from a table.
$scope.removeFavorite = ($event) => {
let ids = [];
$("#favorites input:checked").each((i, el) => {
ids.push(parseInt(el.value));
});
removeFavorites(ids);
// I know, we should ensure the
// scope management occurs only
// when and if the
// favs were successfully deleted.
$scope.favorites = $scope.favorites.filter(
favorite => {
return !ids.includes(favorite.id);
});
};
}
Если я просто позвоню в службу, чтобы удалить избранное из БД (removeFavorites
), область действия не изменится и, следовательно, избранное не будет удалено из их таблицы отображения в пользовательском интерфейсе. Я также должен удалить эти избранное из $scope
. Это верно? Есть ли какой-то другой способ соединить переменную области действия и действия с БД, или я правильно понял, что это должно быть сделано вручную?