从收藏夹列表中删除项目

时间:2014-11-05 10:57:59

标签: angularjs asp.net-mvc-4 angularjs-ng-repeat

我正在使用mvc arcitecture中的单页应用程序上的角度js我有一个我想在我的点击事件中删除的收藏列表

Html For Angular

<div class="favourite" ng-repeat="favourite in category.favourites | orderBy:'title'">
                <a class="title" ng-href="{{favourite.url}}" ng-bind-html="favourite.title | mlStripHtml"></a>
                <div ng-if="profileFavourites.canDelete" class="remove" title="{{ 'TaBort' | mlLocalization }}" ng-click="profileFavourites.remove(favourite, $event,$index)"></div>
            </div>

Angular Js

 FavouriteService.getFavourites(profileId).then(
  function (favourites) {
      $scope.categories = []

  _.forEach(favourites, function (fav) {
      var category = _.find($scope.categories, function (cat) {
          $scope
          return cat.id == fav.type
      })

      if (category) {
          category.favourites.push(fav)
          return
      }

      category = {
          id: fav.type,
          name: Language.getTypeName(fav.type, {
              case: 'none'
          }),
          favourites: [fav]
      }

      $scope.categories.push(category)
  })

  $scope.isLoadingFavourites = false

})

  $scope.remove = function (favourite, $event) {




      $event.preventDefault()
      $event.stopPropagation()



      FavouriteService.removeFromFavourites(favourite.id).then(
        function () {
            alert("favourite")
            var category = _.find($scope.categories, function (cat) {

            return cat.id == favourite.type
          })

          if (category) return

          _.remove(category.favourites, function (fav) {

            return fav.id == favourite.id
          })

          if (!category.favourites.length) {
            _.remove(scope.categories, function (cat) {
              return cat.id == category.id
            })
          }
        })
    }

上面提到的是从列表中删除项目的代码,当我点击删除链接时它完全没问题它成功删除了项目但是onlu问题是它不反映更改直到页面被刷新im tryingh很难,但无法解决它作为角色js的新手任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您在remove方法中传递$ index,因此您可以使用以下代码删除收藏夹

  $scope.remove = function (favourite, $event,index) {
  $event.preventDefault()
  $event.stopPropagation()
      FavouriteService.removeFromFavourites(favourite.id).then(
       function () {
        alert("favourite")
         $scope.category.favourites.splice(index,1);

    })

它会刷新你的清单。