2016-07-29 6 views
0

Mit eckigen, möchte ich den Wert einer Eingabe in einen Cookie mit Hilfe der Direktive speichern, wenn Sie auf Speichern klicken. Hier ist mein Code, ich war mir nicht sicher, ob ich Link-Funktion oder Controller-Direktive verwenden sollte, aber $ cookie ist natürlich im Click-Event-Handler natürlich unbekannt. Wie kann ich $ cookie oder $ log an die On-Click-Funktion übergeben?

.directive('ndUserSettingCookie', ['$cookies', '$log',function() { 
return { 
    link: function(scope, el, attrs) { 
     scope.savedMsg = ' items by page'; 
     var setting = []; 
     scope.itemsByPage = 18; 
     scope.itemsByPage = (typeof setting.itemsByPage !== "undefined")? setting.itemsByPage :scope.itemsByPage; 

     el.on('click', function() {      

      var now = new Date(), 
      // this will set the expiration to 12 months 
      expireDate = new Date(now.getFullYear()+1, now.getMonth(), now.getDate()); 

      $cookies.putObject('setting.itemsByPage', scope.itemsByPage, {'expires': expireDate}); 
      scope.savedMsg = scope.itemsByPage + " items per page saved to your settings!"; 

      scope.$apply(); 
     }) 
    } 
} 
}]) 

Bitte lassen Sie es mich wissen, wenn Sie denken, ich sollte das völlig anders machen.

Antwort

0

Sorry Leute, ich habe nur vergessen, sie zu den Funktionsparametern hinzuzufügen! Mein Fehler!

Dies ist, wie es funktioniert:

.directive('ndUserSettingCookie', ['$cookies', '$log',function($cookies, $log) { 
Verwandte Themen