2015-08-12 18 views
7

Tôi có một kịch bản mà tôi đang thêm một cookie bằng cách sử dụng java-script bình thường và cố gắng lấy nó bằng cách sử dụng dịch vụ Cookie góc làm việc tốt. Nhưng việc loại bỏ cookie bằng cách sử dụng dịch vụ Cookie không hoạt động. JS của tôi là nhưAngular Cookies.remove không hoạt động

<script type="text/javascript"> 
     var app = angular.module('MyApp', ['ngCookies']); 
     app.controller('MyController', function ($scope, $window, $cookies) { 
      $scope.ReadCookie = function() { 
       $window.alert($cookies.get('username')); 
      }; 
      $scope.RemoveCookie = function() { 
       $cookies.remove('username'); 
      }; 

     }); 
     function addCookie(){ 
       document.cookie="username=John Doe;path=/"; 
      } 
    </script> 

HTML của tôi là

<div ng-app="MyApp" ng-controller="MyController"> 
     <input type="button" value="Write Cookie" onclick="addCookie()"/> 
     <input type="button" value="Read Cookie" ng-click="ReadCookie()" /> 
     <input type="button" value="Remove Cookie" ng-click="RemoveCookie()" /> 
    </div> 

Là nó liên quan đến đường dẫn của cookie, nếu có làm thế nào tôi có thể đề cập đến đường dẫn trong chức năng loại bỏ không?

+0

Bạn nên sử dụng cách góc cạnh để tạo cookie mới. cũng kiểm tra xem bạn có trong html của bạn không. – vaske

Trả lời

3

Hãy thử điều này

app.controller('MyController', function ($scope, $window, $cookies) { 
    $scope.ReadCookie = function() { 
     $window.alert($cookies.get('username')); 
    }; 
    $scope.RemoveCookie = function() { 
     $cookies.remove('username'); 
    }; 
    $scope.addCookie= function() { 
     $cookies.put('username','John',[path:'/']); 
    }; 

}); 
+0

Thực ra tôi không thể thêm cookie bằng góc cạnh. Một kịch bản hiện có của nó được thực hiện bởi một servlet. Tất cả những gì tôi cần là xóa cookie. – robin

+0

http://stackoverflow.com/questions/14196229/cant-delete-cookie-with-angularjss-cookies – Vishnu

18

Hãy thử với { path: YOUR_PATH } như tham số.

Ví dụ, với <base href="/">, đặt $cookies.remove('username', { path: '/' });

+0

Có, nếu bạn đặt tùy chọn đường dẫn, hãy xóa tùy chọn đó bằng tùy chọn đường dẫn. –

0

đường Setting mặc định làm việc cho tôi:

$cookiesProvider.defaults.path = "/"; 
0

Để các góc chặn tôi để xóa các cookie từ path khác lừa mà tôi có thực hiện xung quanh nó là đặt ngày expire từ cookie thành now ¯_ (ツ) _/¯:

$cookies.put(cookieName, cookieValue, { expires: $window.moment().toString() }); 
Các vấn đề liên quan