2016-08-18 2 views
1

Мое приложение работает нормально, если я использую ng serve. Когда я перехожу к локальному хосту, ошибок нет.Проблемы с сборкой angular-cli

Когда я делаю лезвием сборки и опубликовать сайт, я получаю следующее сообщение об ошибке: ИСКЛЮЧЕНИЕ: Ошибка: Uncaught (обещанию): Нет значения аксессор для контроля формы с названием: «Электронная почта»

Я использую CLI 1.0.0-beta.11-webpack.2; угловой 2 RC5; материал 2.0.0-alpha.7-4.

app.modlues.ts выглядеть следующим образом:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { BrowserModule }   from '@angular/platform-browser'; 
import { AppComponent }   from './app.component'; 
import { Authenticated }   from './authenticated'; 
import { HttpModule }    from '@angular/http'; 
import { FormsModule, ReactiveFormsModule }   from '@angular/forms'; 
import { RouterModule }   from '@angular/router'; 
import { MdButtonModule }   from '@angular2-material/button'; 
import { MdCardModule }   from '@angular2-material/card'; 
import { MdCheckboxModule }  from '@angular2-material/checkbox'; 
import { MdCoreModule }   from '@angular2-material/core'; 
import { MdIconModule }   from '@angular2-material/icon'; 
import { MdInputModule }   from '@angular2-material/input'; 
import { MdListModule }   from '@angular2-material/list'; 
import { MdProgressBarModule } from '@angular2-material/progress-bar'; 
import { MdProgressCircleModule } from '@angular2-material/progress-circle'; 
import { MdRadioModule }   from '@angular2-material/radio'; 
import { MdToolbarModule }  from '@angular2-material/toolbar'; 
import { AuthenticationService } from './authentication.service'; 
import { DashboardComponent } from './dashboard/dashboard.component'; 
import { appRouterProviders } from './app.routes'; 
import { ActionsComponent } from './actions/actions.component'; 
import { LoginComponent } from './login/login.component'; 
import { ActionDetailComponent } from './action-detail/action-detail.component'; 

@NgModule({ 
    declarations: [ 
     AppComponent, 
     DashboardComponent, 
     ActionsComponent, 
     LoginComponent, 
     ActionDetailComponent 
    ], 
    providers: [ 
     appRouterProviders, 
     AuthenticationService, 
     Authenticated   
    ], 
    imports:  [ 
     BrowserModule, 
     CommonModule, 
     HttpModule, 
     FormsModule, 
     ReactiveFormsModule, 
     RouterModule, 
     MdButtonModule, 
     MdCardModule, 
     MdCheckboxModule, 
     MdCoreModule, 
     MdIconModule, 
     MdInputModule, 
     MdListModule, 
     MdProgressBarModule, 
     MdProgressCircleModule, 
     MdRadioModule,   
     MdToolbarModule 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule {} 

компонент входа, где происходит ошибка:

import { Component, OnInit } from '@angular/core'; 
import { AuthenticationService } from '../authentication.service'; 
import { Router } from '@angular/router'; 
import { NgForm } from '@angular/forms'; 

@Component({ 
    selector: 'app-login', 
    templateUrl: 'login.component.html', 
    styleUrls: ['login.component.css'], 
    directives: [ 
    NgForm 
    ] 
}) 
export class LoginComponent implements OnInit { 
    email: string; 
    password: string; 
    submitted : boolean = false; 

    constructor(private authenticationService: AuthenticationService, private router: Router) {} 

    ngOnInit() { 
    } 

    onSubmit() { 
    this.submitted = true; 
    this.authenticationService.login(this.email, this.password) 
           .subscribe(
           (result) => {                  
            this.submitted = false; 
            if (result) {          
            this.router.navigate(['']);          
            }         
           }, 
           (error) => { 
            this.submitted = false;         
           }); 
    } 
} 

Войти компонент HTML:

<div> 
    <md-card> 
     <h1>Login</h1> 
     <br/>  
     <form (ngSubmit)="onSubmit()" #loginForm="ngForm"> 
      <div> 
       <md-input placeholder="Username" required [(ngModel)]="email" name="email"></md-input> 
      </div>  
      <div> 
       <md-input placeholder="Password" type="password" required [(ngModel)]="password" name="password" ></md-input> 
      </div> 
      <br/> 
      <button md-raised-button type="submit" [disabled]="!loginForm.form.valid || submitted" class="btn btn-default">Submit</button> 
     </form>    
    </md-card> 
</div> 
+0

попытаться не Минимизировать HTML в режиме производства должны решить. –

ответ

2

шаблона синтаксического анализа не работает должным образом, как и следовало бы, и угловатая команда обеспечила работу над своими документами прямо сейчас, но надеется, что это полностью d можно исправить в ближайшее время в webpack.config файле добавить

htmlLoader: { 
    minimize: false // workaround for ng2 
    }, 

Или

{ 
    test: /\.html$/, 
    loader: `html?-minimize` 
} 

workaround from angular.io

+0

Огромное спасибо –

+0

, если ответ на него поможет вам решить вашу проблему, пожалуйста, примите это :-) –

+0

Где находится webpack.config файл? Я не могу его найти. – brando

Смежные вопросы