Dev Teywa

Dev Teywa

  • NA
  • 250
  • 37.9k

ERROR TypeError Cannot read property 'getLangs' of undefined

Jan 31 2018 4:17 PM
Hi,
can anyone help me to fix this error
 
this is my script
 
and thanks in advance 
 
 
 
main.component.html
  1. <!-- MAIN CONTENT -->  
  2. <div id="main-content">  
  3.         <div class="jumbotron">  
  4.             <!--span class="sp"> Notre philosophie.Notre travail consiste à aider chaque entreprise à comprendre son marché, marquer son territoire face à la concurrence, séduire le public par l'attraction de la marque ou motiver le stagiaire sur le projet d'entreprise. </span>  
  5.             <br /-->  
  6.             <p>{{ 'header.title' | translate }} {{title}}</p>  
  7.         </div>  
  8.     </div>  
  9.   
  10.       
  11.   
  12. <!-- END MAIN CONTENT -->  
app.module.ts
 
  1. import { BrowserModule } from '@angular/platform-browser';  
  2. import { NgModule } from '@angular/core';  
  3.   
  4. import {routes} from './app.routing'  
  5. import { FormsModule } from '@angular/forms';  
  6. import { LocationStrategy, HashLocationStrategy } from '@angular/common';  
  7.   
  8. import { AppComponent } from './app.component';  
  9. import { NavbarComponent } from './navbar/navbar.component';  
  10. import { SidebarComponent } from './sidebar/sidebar.component';  
  11. import { FooterComponent } from './footer/footer.component';  
  12.   
  13. import { HomeComponent } from './main/main.component';  
  14. import { LoginComponent } from './login/login.component';  
  15. import { RegisterComponent } from './register/register.component';  
  16.   
  17. import {Globals} from './globals'  
  18. import { AboutComponent } from './about/about.component';  
  19. import { ContactComponent } from './contact/contact.component';  
  20.   
  21. import {TranslateModule, TranslateLoader} from "@ngx-translate/core";  
  22. import {TranslateHttpLoader} from "@ngx-translate/http-loader";  
  23. import {HttpClientModule , HttpClient} from "@angular/common/http";  
  24.   
  25. export function HttpLoaderFactory(http: HttpClient) {  
  26.   return new TranslateHttpLoader(http, "i18n/", ".json");  
  27. }  
  28.   
  29. @NgModule({  
  30.   declarations: [  
  31.     AppComponent,  
  32.     NavbarComponent,  
  33.     SidebarComponent,  
  34.     HomeComponent,  
  35.     FooterComponent,  
  36.     LoginComponent,  
  37.     RegisterComponent,AboutComponent,ContactComponent  
  38.   ],  
  39.   imports: [  
  40.     BrowserModule,routes,FormsModule,  
  41.     HttpClientModule,  
  42.     TranslateModule.forRoot({     
  43.         loader: {  
  44.           provide: TranslateLoader,  
  45.           useFactory: HttpLoaderFactory,  
  46.           deps: [HttpClient]  
  47.         }  
  48.       })    
  49.   ],  
  50.   providers: [Globals, {  
  51.     provide: LocationStrategy, useClass: HashLocationStrategy  
  52. }],  
  53.   bootstrap: [AppComponent]  
  54. })  
  55. export class AppModule { }  
navbar.component.html
 
 
  1. <!-- NAVBAR -->  
  2. <nav class="navbar navbar-default navbar-fixed-top">  
  3.     <div class="container-fluid">  
  4.         <div class="navbar-btn">  
  5.             <button type="button" class="btn-toggle-offcanvas"><i class="lnr lnr-menu"></i></button>  
  6.         </div>  
  7.         <!-- logo -->  
  8.         <div class="navbar-brand">  
  9.             <a [routerLink]='["/home"]'>Quantum Technologies</a>  
  10.         </div>  
  11.         <!-- end logo -->  
  12.         <div class="navbar-right">  
  13.               
  14.                 <!--button type="button" class="btn btn-primary">Translate</button-->  
  15.                 <div class="btn-group">  
  16.                     <!--a type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">  
  17.                       Choose your language <span class="caret"></span>  
  18.                     </a>  
  19.                     <ul class="dropdown-menu" role="menu" style="margin-right: 13px;">  
  20.                         <li><a class="btn btn-default">English</a></li>  
  21.                         <li><a class="btn btn-default">French</a></li>  
  22.                     </ul-->  
  23.                     <label><span style="color:white">{{ 'header.select' | translate }}</span>  
  24.                         <select #langSelect (change)="translate.use(langSelect.value)">  
  25.                              <option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="lang === translate.currentLang">{{ lang }}  
  26.                              </option>  
  27.                         </select>  
  28.                    </label>  
  29.                   </div>  
  30.                   
  31.         </div>  
  32.     </div>  
  33. </nav>  
  34.   
  35.   
  36. <!-- END NAVBAR -->  
 app.component.ts
 
  1. import { Component } from '@angular/core';  
  2. import {Globals} from './globals';  
  3. import { TranslateService } from '@ngx-translate/core';  
  4.   
  5. @Component({  
  6.   selector: 'app-root',  
  7.   templateUrl: './app.component.html',  
  8.   styleUrls: ['./app.component.css']  
  9. })  
  10. export class AppComponent {  
  11.   title = 'app';  
  12.   
  13.   constructor(private translate: TranslateService) {  
  14.     translate.addLangs(["en", "hi"]);  
  15.        translate.setDefaultLang('en');  
  16.   
  17.        let browserLang = translate.getBrowserLang();  
  18.        translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');  
  19.    }  
  20.   
  21. }  
 
 

Answers (5)