Я искал все вокруг для Углового печенья, но я не смог найти, как реализовать управление cookies в Angular. Есть ли способ управлять файлами cookie (например, $ cookie в AngularJS)?Угловое печенье
ответ
Я закончил создание своих собственных функций:
@Component({
selector: 'cookie-consent',
template: cookieconsent_html,
styles: [cookieconsent_css]
})
export class CookieConsent {
private isConsented: boolean = false;
constructor() {
this.isConsented = this.getCookie(COOKIE_CONSENT) === '1';
}
private getCookie(name: string) {
let ca: Array<string> = document.cookie.split(';');
let caLen: number = ca.length;
let cookieName = `${name}=`;
let c: string;
for (let i: number = 0; i < caLen; i += 1) {
c = ca[i].replace(/^\s+/g, '');
if (c.indexOf(cookieName) == 0) {
return c.substring(cookieName.length, c.length);
}
}
return '';
}
private deleteCookie(name) {
this.setCookie(name, '', -1);
}
private setCookie(name: string, value: string, expireDays: number, path: string = '') {
let d:Date = new Date();
d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);
let expires:string = `expires=${d.toUTCString()}`;
let cpath:string = path ? `; path=${path}` : '';
document.cookie = `${name}=${value}; ${expires}${cpath}`;
}
private consent(isConsent: boolean, e: any) {
if (!isConsent) {
return this.isConsented;
} else if (isConsent) {
this.setCookie(COOKIE_CONSENT, '1', COOKIE_CONSENT_EXPIRE_DAYS);
this.isConsented = true;
e.preventDefault();
}
}
}
сделать его инъекционным в следующий раз :) –
Возможно, вы могли бы опубликовать собственное решение с функциональностью для инъекций, что было бы здорово для других, которым это нужно для инъекций :) – Miquel
должны быть компонентом? Почему бы вам не сделать инъекционную услугу? –
Да, вот один NG2-печенье
Использование:
import { Cookie } from 'ng2-cookies/ng2-cookies';
Cookie.setCookie('cookieName', 'cookieValue');
Cookie.setCookie('cookieName', 'cookieValue', 10 /*days from now*/);
Cookie.setCookie('cookieName', 'cookieValue', 10, '/myapp/', 'mydomain.com');
let myCookie = Cookie.getCookie('cookieName');
Cookie.deleteCookie('cookieName');
Их API изменился, вот документы: https://github.com/BCJTI/ng2-cookies/wiki/Minimum-running-example – etayluz
Вот angular2-cookie, который является точной реализации Угловое 1 $cookies
обслуживание (plus a removeAll()
способ). Он использует те же методы, которые реализованы только в машинописном тексте с логикой Angular 2.
Вы можете вводить его в качестве службы компонентов providers
массива:
import {CookieService} from 'angular2-cookie/core';
@Component({
selector: 'my-very-cool-app',
template: '<h1>My Angular2 App with Cookies</h1>',
providers: [CookieService]
})
После этого, определить его в consturctur, как обычно, и начать использовать:
export class AppComponent {
constructor(private _cookieService:CookieService){}
getCookie(key: string){
return this._cookieService.get(key);
}
}
Вы можете получить его с помощью NPM:
npm install angular2-cookie --save
EDIT: angular2-cookie теперь осуждается. Вместо этого используйте ngx-cookie.
Какая разница с ng2-cookie? – Miquel
Использует угловую логику и методы за кулисами. Так что это более угловато. Также он имеет все методы из службы cookie $ плюс метод удаления всех методов. Также он предоставляет глобальные параметры и параметры. И это услуга. –
Для чтения печенье я сделал небольшие модификации версии Микеля, что не работает для меня:
getCookie(name: string) {
let ca: Array<string> = document.cookie.split(';');
let cookieName = name + "=";
let c: string;
for (let i: number = 0; i < ca.length; i += 1) {
if (ca[i].indexOf(name, 0) > -1) {
c = ca[i].substring(cookieName.length +1, ca[i].length);
console.log("valore cookie: " + c);
return c;
}
}
return "";
- 1. Угловое - $ печенье неопределен
- 2. Угловое печенье и завод
- 3. Жасмин Единица измерения Угловое печенье
- 4. Доступ печенье с Угловое или Javascript
- 5. доступа Угловое $ печенье из без углового кода
- 6. Угловое печенье не возвращает одинаковое значение при разных URL
- 7. Весеннее защитное печенье прибывает Угловое только после первого запрещенного запроса
- 8. Угловое печенье истекает, но кнопка возврата возвращает его
- 9. Как продлить печенье
- 10. Чтение PHP печенье из JavaScript печенье
- 11. WebOb печенье
- 12. ASP.NET/Печенье
- 13. Печенье понятие
- 14. неопределенное печенье
- 15. Значение - "// = требуется угловое/угловое"
- 16. НПМ жестко печенье: сохранить печенье, а затем сбросить его
- 17. JQuery плагин печенье создает же печенье вместо чтения это
- 18. Python - преобразовать набор-печенье ответ на массив печенье
- 19. ASP.NET: Печенье, значение не сбрасывается, печенье не удаляется
- 20. AngularJS Печенье - Печенье, сохраненные в браузере, но не отображающие
- 21. Угловое 2, ResolveGuard, Угловое HTTP,
- 22. Набора печенье рядного
- 23. Печенье в Robospice
- 24. Печенье и субдомен
- 25. Кэширование Печенье в Awesomium
- 26. Прослушивание, если печенье изменилось
- 27. Сохранение '&' в Печенье
- 28. Selenium2library Добавить печенье
- 29. Закрепление печенье в ASP.NET
- 30. Показать скрыть Javascript печенье
Angular2 не имеют какой-либо родной библиотеки/услуги для обработки печенье. Предпочтительным способом является использование JWT/LocalStorage. https://github.com/auth0/angular2-authentication-sample –