ngx-cookieconsent: не удается найти имя «NgcInitializeEvent» и «NgcStatusChangeEvent»

Я хотел бы использовать пакет согласия ngx-cookie в моем приложении angular 4 (построенном с помощью angular cli). У меня нет файла systemjs. Следовательно, за исключением этой части, я следовал каждому шагу, как в документации ( https://tinesoft.github.io/ngx-cookieconsent/doc/index.html). У меня 4 сообщения об ошибках

  1. две ошибки с последующим сообщением

    //Cannot read property 'initialise' of undefined at 
    //NgcCookieConsentService.init (cookieconsent.service.js:53)
    //at new NgcCookieConsentService (cookieconsent.service.js:23)
    //at _createClass (core.es5.js:9532)
    //at createProviderInstance$1 (core.es5.js:9500)
    //at resolveNgModuleDep (core.es5.js:948 5) 
    //at NgModuleRef.get (core.es5.js:10577)
    //at resolveDep (core.es5.js:11080)
    //at createClass (core.es5.js:10933)
    //at createDirectiveInstance (core.es5.js:10764)
    //at createViewNodes (core.es5.js:12212)
    
    1. Cannot find name 'NgcInitializeEvent'. Cannot find name 'NgcStatusChangeEvent'.

Пожалуйста помоги.


person user659730    schedule 05.10.2017    source источник
comment
ты сделал часть @NgModule imports: [NgcCookieConsentModule.forRoot(cookieConfig), ...], ?   -  person angularrocks.com    schedule 05.10.2017
comment
да, я сделал это. также у меня есть еще один модуль (app-routing-module.ts), я также включил его туда без параметра cookieConfig.   -  person user659730    schedule 05.10.2017
comment
Оказывается, первая ошибка возникла из-за неправильной установки зависимостей (сработала команда del -rf node_modules - github.com/tinesoft/ngx-cookieconsent/issues/2). У меня все еще есть вторая проблема, хотя! Благодаря чему cookie появляется каждый раз при открытии страницы.   -  person user659730    schedule 05.10.2017


Ответы (2)


Я являюсь автором ngx-cookieconsent. Я уже отвечал на вопросы в трекере проблем проекта, но для будущих гуглеров вот они:

  1. «NgcInitializeEvent» и «NgcStatusChangeEvent» не найдены

Вам нужно импортировать их, если вы хотите использовать эти события в своем коде:

import { NgcInitializeEvent, NgcStatusChangeEvent } from 'ngx-cookieconsent';
  1. Статус куки не сохраняется

вам нужно установить параметр 'cookie.domain' объекта конфигурации (даже в локальном хосте), чтобы файлы cookie были установлены правильно:

import {NgcCookieConsentModule, NgcCookieConsentConfig} from 'ngx-cookieconsent';

const cookieConfig:NgcCookieConsentConfig = {
  cookie: {
    domain: 'localhost' // or 'your.domain.com' // it is mandatory to set a domain (even in localhost), for cookies to work properly
  }
};

@NgModule({
  declarations: [AppComponent, ...],
  imports: [NgcCookieConsentModule.forRoot(cookieConfig), ...],  
  bootstrap: [AppComponent]
})
export class AppModule {
}

Примечание. если вы используете Angular CLI для своего потребляющего приложения, вы можете воспользоваться преимуществами среды для управления доменом в зависимости от вашей рабочей среды:

environments/environment.ts: (разработчик)

export const environment = {
  production: false,
  cookieDomain: 'localhost' // -<< must be 'localhost'
};

environments/environment.prod.ts: (продукт)

export const environment = {
  production: true,
  cookieDomain: 'your.domain.com' // -<< must be the domain of deployed app
};

и используйте его как таковой:

import {NgcCookieConsentModule, NgcCookieConsentConfig} from 'ngx-cookieconsent';
import { environment } from './../environments/environment';

const cookieConfig:NgcCookieConsentConfig = {
  cookie: {
    domain: environment.cookieDomain // -<< domain will change base on your running env
  }
};

@NgModule({
  declarations: [AppComponent, ...],
  imports: [NgcCookieConsentModule.forRoot(cookieConfig), ...],  
  bootstrap: [AppComponent]
})
export class AppModule {
}
person tinesoft    schedule 16.10.2017
comment
как использовать согласие на использование файлов cookie для Angular 5? - person yog; 20.05.2019
comment
Я просто следую этому :) Я получаю сообщение об ошибке при попытке запустить мое приложение... ошибка: An unhandled exception occurred: Script file ../node_modules/cookieconsent/build/cookieconsent.min.js does not exist. Любая идея, почему эта ошибка здесь? У меня есть этот файл в модулях узлов. - person Csibi Norbert; 18.07.2020

У меня такая же проблема. Это решилось добавлением файлов min.js и min.css в файл angular.json. См.: https://github.com/tinesoft/ngx-cookieconsent.

person lordneru    schedule 15.06.2020