Over the past two days, I have been trying to get ngSwitch to work in angular 2.1.0. But it seems impossible for his work.
I always get No provider for NgSwitch. Below is my code -
Template -
<template [ngSwitch]="buttonSelector"> <a class="btn" [ngClass]="buttonSizeClass" *ngSwitchCase="'link'" href="#"> <span class="btn__text"> <ng-content></ng-content> </span> </a> </template>
Component -
import { Component, OnInit, Input } from '@angular/core'; @Component({ selector: 'app-inked-btn', templateUrl: './inked-btn.component.html', styleUrls: ['./inked-btn.component.css'], inputs: ['buttonSize', 'buttonType', "buttonSelector"] }) export class InkedBtnComponent implements OnInit { public buttonSize: string; public buttonType: string; public buttonSelector: string; public buttonSizeClass: any; constructor() { } ngOnInit() { this.buttonSizeClass = { 'btn--lg': this.buttonSize === 'large', 'btn--sm': this.buttonSize === 'small', 'btn--primary': this.buttonType === 'primary' } } }
Below is my module configuration -
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { HeaderComponent } from './header/header.component'; import { FooterComponent } from './footer/footer.component'; import { InkedBtnComponent } from './inked-btn/inked-btn.component'; @NgModule({ imports: [ CommonModule, RouterModule ], declarations: [HeaderComponent, FooterComponent, InkedBtnComponent], exports: [HeaderComponent, FooterComponent, InkedBtnComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class SharedModule { }
This common module is then imported into the main module.
Where is the miss?
angular
Abhishek prakash
source share