How to use Angular2 with ng2-cookie

GET http://localhost/ng2-cookies/ng2-cookies 404 (Not Found)

Here is my error log.

I'm trying to use ng2-cookies module on my project.

Here is app.component.ts

import {Cookie} from 'ng2-cookies/ng2-cookies';
Cookie.setCookie('ticket_status', responses.data.ticket);
console.log(Cookie.getCookie('ticket_status'));

What kind of problem? Please help

Upvotes: 8

Views: 10798

Answers (7)

JoeX
JoeX

Reputation: 1

The best option is to install the library Run this command $ npm install ng2-cookies https://www.npmjs.com/package/ng2-cookies

Upvotes: 0

Joe Velez
Joe Velez

Reputation: 140

Similar to the some of the other answers... but this is what worked for me (Angular 4.0.3 (haven't had a chance to update to 5):

// systemjs.config.js
map: {
    ...
    'ng2-cookies' : 'node_modules/ng2-cookies',
}
packages: {
    ...
    'ng2-cookies': {defaultExtension: 'js', main:'./index.js'}
}

// my app module
import { CookieService } from 'ng2-cookies';
@NgModule({
    ...
    providers: [
        ...
        CookieService
    ]
})

// my components
import { CookieService } from 'ng2-cookies';
constructor(private cookieService:CookieService){}

Upvotes: 0

Ajitesh
Ajitesh

Reputation: 1056

This is what worked for me.

map: {
    ...,
    'ng2-cookies': 'npm:ng2-cookies'
},
packages: {
    ...,
    'ng2-cookies': {
      main: './index.js',
      defaultExtension: 'js'
    },
}

Upvotes: 0

Shiha Mohan
Shiha Mohan

Reputation: 21

Try using this.

import { Cookie }` from `'ng2-cookies/ng2-cookies';

Cookie.set('ticket_status', responses.data.ticket);

Upvotes: 1

SAGA
SAGA

Reputation: 21

Try this

Cookie.set('ticket_status', "hello");
console.log(Cookie.get('ticket_status'));

We don't have method like:

setCookie and getCookie in Js class

Extract from JS class


    /**
     * Retrieves a single cookie by it's name
     *
     * @param  {string} name Identification of the Cookie
     * @returns The Cookie's value
     */
    public static get(name: string): string  {
        if (Cookie.check(name)) {
            name = encodeURIComponent(name);
            let regexp = new RegExp('(?:^' + name + '|;\\s*' + name + ')=(.*?)(?:;|$)', 'g');
            let result = regexp.exec(document.cookie);
            return decodeURIComponent(result[1]);
        } else {
            return '';
        }   
    }


/**
     * Save the Cookie
     *
     * @param  {string} name Cookie's identification
     * @param  {string} value Cookie's value
     * @param  {number} expires Cookie's expiration date in days from now. If it's undefined the cookie is a session Cookie
     * @param  {string} path Path relative to the domain where the cookie should be avaiable. Default /
     * @param  {string} domain Domain where the cookie should be avaiable. Default current domain
     * @param  {boolean} secure If true, the cookie will only be available through a secured connection
     */
    public static set(name: string, value: string, expires?: number, path?: string, domain?: string, secure?: boolean) {
        let cookieStr = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';

        if (expires) {
            let dtExpires = new Date(new Date().getTime() + expires * 1000 * 60 * 60 * 24);
            cookieStr += 'expires=' + dtExpires.toUTCString() + ';';
        }
        if (path) {
            cookieStr += 'path=' + path + ';';
        }
        if (domain) {
            cookieStr += 'domain=' + domain + ';';
        }
        if (secure) {
            cookieStr += 'secure;';
        }

        // console.log(cookieStr);
        document.cookie = cookieStr;
    }

Upvotes: 2

Suprriya
Suprriya

Reputation: 71

I faced a similar problem. Solved it by doing following changes in system.config.js file and it worked -

  1. Add ng2-cookies to map entry 'ng2-cookies': 'node_modules/ng2-cookies'

  2. Add ng2-cookies to packages entry 'ng2-cookies':{ defaultExtension: 'js' }

Upvotes: 7

Thierry Templier
Thierry Templier

Reputation: 202296

I think that you should add a map entry into your SystemJS configuration file. Something like that:

<script>
  System.config({
    defaultJSExtensions: true,
    map: {
      "ng2-cookies": 'node_modules/ng2-cookies'
    },
    packages: {
      (...)
    }
  });
</script>

Upvotes: 1

Related Questions