Usando angular, quero salvar o valor de umentrada para um cookie usando a diretiva ao clicar no botão salvar. Aqui está o meu código, eu não tinha certeza se deveria usar a função de link ou a diretiva do controlador, mas de qualquer forma $ cookie é obviamente desconhecido no manipulador de eventos click. Como posso passar $ cookie ou $ log para a função ao clicar?
.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();
})
}
}
}])
Por favor, deixe-me saber se você acha que devo fazer isso de outra maneira totalmente
Respostas:
0 para resposta № 1desculpe pessoal, eu apenas esqueci de adicioná-los aos parâmetros da função! Foi mal!
É assim que funciona:
.directive("ndUserSettingCookie", ["$cookies", "$log",function($cookies, $log) {