2016-05-14 67 views
2

我使用$ http獲取JSON數據,並且使用ng-repeat(表格格式)顯示它我想爲每個表數據添加一個按鈕,所以單擊該值將會被保存爲一個cookie。請幫我在這裏ng-repeat將某個值保存爲cookie

+0

這裏是使用JavaScript的HTTP cookies的W3學校教程:// www.w3schools.com/js/js_cookies.asp ....但你也可以使用localStorage存儲數據 –

+0

我在這裏談論AngularJS –

回答

2

查看:

<script src="~/Scripts/angular.js"></script> 
<script type="text/javascript"> 

    function createCookie(name, value, days) { 
     if (days) { 
      var date = new Date(); 
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
      var expires = "; expires=" + date.toGMTString(); 
     } 
     else var expires = ""; 
     document.cookie = name + "=" + value + expires + "; path=/"; 
    } 

    var myApp = angular.module("myApp", []); 

    myApp.controller('controller', function ($scope, $http, $compile) { 

     $scope.employees = [{ "name": "Employee1", "surname": "Surname1" }, 
          { "name": "Employee2", "surname": "Surname2" }, 
          { "name": "Employee3", "surname": "Surname3" }, 
          { "name": "Employee4", "surname": "Surname4" }]; 

     $scope.AddCookie = function (employee) { 

      debugger; 
      var cookie = employee.name + " " + employee.surname; 
      createCookie("Employee", cookie, 1); 

     } 
    }); 

</script> 

<div ng-app="myApp" ng-controller="controller"> 
    <table> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Surname</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="e in employees"> 
       <td>{{e.name}}</td> 
       <td>{{e.surname}}</td> 
       <td><input type="button" value="Add Cooke" ng-click="AddCookie(e)"/></td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

這裏是您的Cookie:

cookie in google chrome

+0

我沒有在我的答案的任何地方訪問一個名爲'word'的屬性。這可能與您的頁面上的其他代碼發生有關。如果您將我的代碼按原樣粘貼到頁面中,您將看到它的工作原理沒有任何錯誤。我建議在Google Chrome(Ctrl + Shift + J)中使用調試器工具來調試您的js,並確切地查看錯誤發生的位置 –

+0

已修復,我沒有更改模板中的屬性,現在問題是我能要添加一個正在保存的cookie,我想添加更多。 –

+0

因此,請確保您的Cookie的名稱是唯一的。因爲當您將其設置爲不同的值時,它會被覆蓋 –