我正在(重新)学习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
)中删除收藏夹,则范围不会受到影响,因此收藏夹不会从UI的显示表中删除。我还必须从$scope
中删除这些收藏夹。那是对的吗?还有其他方法可以将作用域变量和数据库上的操作连接起来吗,或者我是否必须手动完成此操作?