Куки баннер не отображается
Хочу добавить куки баннер на сайт, но почему-то ничего не отображается, в чем проблема?
angular.module('app', ['ngCookies'])
.directive('consent', function ($cookies) {
return {
scope: {},
template:
'<div style="position: relative; z-index: 1000">' +
'<div style="background: #ccc; position: fixed; bottom: 0; left: 0; right: 0" ng-hide="consent()">' +
' <a href="" ng-click="consent(true)">I\'m cookie consent</a>' +
'</div>' +
'</div>',
controller: function ($scope) {
var _consent = $cookies.get('consent');
$scope.consent = function (consent) {
if (consent === undefined) {
return _consent;
} else if (consent) {
$cookies.put('consent', true);
_consent = true;
}
};
}
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-cookie/4.1.0/angular-cookie.js"></script>
<div consent></div>
Ответы (1 шт):
Автор решения: Stepan Kasyanenko
→ Ссылка
В вашем примере подключена не та библиотека для работы с cookie.
https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-cookies.js - вот это куки от ангуляра.
Я не понимаю логики работы вашего баннера, но куки устанавливаются.
Пример на jsfiddle.
angular.module('app', ['ngCookies'])
.directive('consent', function($cookies) {
return {
scope: {},
template: '<div style="position: relative; z-index: 1000">' +
'<div style="background: #ccc; position: fixed; bottom: 0; left: 0; right: 0" ng-hide="consent()">' +
' <a href="" ng-click="consent(true)">I\'m cookie consent</a>' +
'</div>' +
'</div>',
controller: function($scope) {
var _consent = $cookies.get('consent');
console.log(_consent);
$scope.consent = function(consent) {
console.log(consent);
if (consent === undefined) {
return _consent;
} else if (consent) {
$cookies.put('consent', true);
_consent = true;
}
};
}
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-cookies.js"></script>
<div ng-app="app">
<div consent></div>
</div>