Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 韩元';t从本地存储中删除后自动删除_Angularjs_Html_Ionic Framework_Local Storage_Angular Local Storage - Fatal编程技术网

Angularjs 韩元';t从本地存储中删除后自动删除

Angularjs 韩元';t从本地存储中删除后自动删除,angularjs,html,ionic-framework,local-storage,angular-local-storage,Angularjs,Html,Ionic Framework,Local Storage,Angular Local Storage,首先,这里是代码 controller.js .controller('FavoritesController', ['$scope', 'dishes', 'favorites', 'favoriteFactory', 'baseURL', '$ionicListDelegate', '$ionicPopup', '$ionicLoading', '$timeout', '$localStorage', function ($scope, dishes, favorites, favorite

首先,这里是代码

controller.js

.controller('FavoritesController', ['$scope', 'dishes', 'favorites', 'favoriteFactory', 'baseURL', '$ionicListDelegate', '$ionicPopup', '$ionicLoading', '$timeout', '$localStorage', function ($scope, dishes, favorites, favoriteFactory, baseURL, $ionicListDelegate, $ionicPopup, $ionicLoading, $timeout, $localStorage) {

        $scope.baseURL = baseURL;
        $scope.shouldShowDelete = false;

        $scope.favorites = favorites;

        $scope.dishes = dishes;

        console.log($scope.dishes, $scope.favorites);

        $scope.toggleDelete = function () {
            $scope.shouldShowDelete = !$scope.shouldShowDelete;
            console.log($scope.shouldShowDelete);
        }

        $scope.deleteFavorite = function (index) {

            var confirmPopup = $ionicPopup.confirm({
                title: 'Confirm Delete',
                template: 'Are you sure you want to delete this item?'
            });

            confirmPopup.then(function (res) {
                if (res) {
                    console.log('Ok to delete');
                    favoriteFactory.deleteFromFavorites(index);

                    var old_favorite = JSON.parse($localStorage.get('favorites'));
                    var leng = Object.keys(old_favorite).length;

                    for (var i = 0; i < leng; i++) {
                        if (Object.keys(old_favorite)[i] == index) {
                            console.log("Deleted from localstorage! " + Object.keys(old_favorite)[i]);
                            old_favorite.splice(old_favorite.indexOf(index), 1);
                            $localStorage.storeObject('favorites', old_favorite);

                        }
                    }


                } else {
                    console.log('Canceled delete');
                }
            });

            $scope.shouldShowDelete = false;

        }
    }])
.factory('favoriteFactory', ['$resource', 'baseURL', function ($resource, baseURL) {
        var favFac = {};
        var favorites = [];

        favFac.addToFavorites = function (index) {
            for (var i = 0; i < favorites.length; i++) {
                if (favorites[i].id == index)
                    return;
            }
            favorites.push({id: index});
        };

        favFac.deleteFromFavorites = function (index) {
            for (var i = 0; i < favorites.length; i++) {
                if (favorites[i].id == index) {
                    favorites.splice(i, 1);
                    console.log("Deleted !" + index);
                }
            }
        }

        favFac.getFavorites = function () {
            return favorites;
        };

        return favFac;
        }])
 .state('app.favorites', {
  url: '/favorites',
  views: {
    'mainContent': {
      templateUrl: 'templates/favorites.html',
        controller:'FavoritesController',
      resolve: {
          dishes:  ['menuFactory', function(menuFactory){
            return menuFactory.query();
          }],
                        favorites: ['favoriteFactory', function(favoriteFactory) {
              return favoriteFactory.getFavorites();
          }]
      }
    }
  }
})
因此,在我尝试使用controller.js中的deleteFavorite函数并成功删除localstorage中的索引后,favorites.html上的数据无法更新,也无法立即从favorities.html中删除

我需要首先刷新浏览器以显示基于本地存储的最新列表

我希望可以基于localstorage数据显示最新数据,而无需刷新页面

我在这里做错什么了吗


提前谢谢你

尝试将摘要()手动添加到页面。请参阅-创建一个简单的演示,使用
index
作为变量名来表示ID,以复制非常混乱的问题。还应在同一位置执行所有存储更改和阵列更改。
 .state('app.favorites', {
  url: '/favorites',
  views: {
    'mainContent': {
      templateUrl: 'templates/favorites.html',
        controller:'FavoritesController',
      resolve: {
          dishes:  ['menuFactory', function(menuFactory){
            return menuFactory.query();
          }],
                        favorites: ['favoriteFactory', function(favoriteFactory) {
              return favoriteFactory.getFavorites();
          }]
      }
    }
  }
})