Winkel-4 : Build prod: Eigentum privat ist und der Zugriff nur innerhalb der Klasse
ich bin mit Winkel 4 , ich bin mit : ng build --prod
ich bin, fangen diese :
ng build --prod
Your global Angular CLI version (1.2.2) is greater than your local
version (1.0.0). The local Angular CLI version is used.
To disable this warning use "ng set --global warnings.versionMismatch=false".
Hash: 7fce5d10c4c3ac9745e8
Time: 68351ms
chunk {0} polyfills.7790a64cc25c48ae62ea.bundle.js (polyfills) 177 kB {4} [initial] [rendered]
chunk {1} main.f10680210e9e45ed33cc.bundle.js (main) 382 kB {3} [initial] [rendered]
chunk {2} styles.d2e6408caea42ccabf99.bundle.css (styles) 175 bytes {4} [initial] [rendered]
chunk {3} vendor.fc69ec31f7ef40b5fffb.bundle.js (vendor) 5.9 MB [initial] [rendered]
chunk {4} inline.91747411075ce6c7f438.bundle.js (inline) 0 bytes [entry] [rendered]
ERROR in ng:///D:/Sources/DotNet/NextGCClientWeb/src/app/login/login.component.html (11,3): Property 'activatedRoute' is private and only accessible within class 'Login
Component'.
ERROR in ng:///D:/Sources/DotNet/NextGCClientWeb/src/app/login/login.component.html (11,3): Property 'activatedRoute' is private and only accessible within class 'Login
Component'.
dieser Fehler scheint zu sein, seltsam :
ERROR in
ng:///D:/Sources/DotNet/NextGCClientWeb/src/app/login/login.component.html (11,3): Property 'activatedRoute' is private and only accessible within class 'Login Component
Den angegebenen Komponente, die in der Fehlermeldung ist die folgende :
import { Component } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { Http, Response } from '@angular/http';
import { SessionService } from './../../shared/service';
import { User } from './../../model';
@Component({
selector: 'login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent {
error: string;
email: string;
password: string;
stayConnected: Boolean;
constructor (
private sessionService: SessionService,
private router: Router,
private activatedRoute: ActivatedRoute
) {
if (activatedRoute.snapshot.params['keyWording']) {
this.sessionService.logInWithFinalization(activatedRoute.snapshot.params['keyWording']);
}
}
logIn() {
this.sessionService.logIn(this.email, this.password, this.stayConnected).subscribe(
() => {
if (this.sessionService.pageRequestedInUnauthenticated == null) {
this.router.navigate(['/welcome']);
} else {
this.router.navigate([this.sessionService.pageRequestedInUnauthenticated]);
}
},
(error: Response) => this.error = error.json()
);
}
}
Der html-Ansicht:
<div id="divLogin">
<h1>Se connecter</h1><br>
<i class="fa fa-envelope-o fa-lg" id="iconEmail"></i>
<input type="text" id="email" [(ngModel)]="email" (keyup.enter)="logIn()" class="form-control" placeholder="Adresse email" autofocus />
<i class="fa fa-lock fa-lg" id="iconPassword"></i>
<input type="password" id="password" [(ngModel)]="password" (keyup.enter)="logIn()" class="form-control" placeholder="Mot de passe" />
<button (click)="logIn()" class="btn btn-primary btn-block btn-lg">Connexion</button>
<span id="containerStayConnected" title="Non implémenté"><input type="checkbox" id="stayConnected" [(ngModel)]="stayConnected" /><label for="stayConnected">Restez connecté</label></span>
<a id="forgetPassword" title="Non implémenté">Mot de passe oublié</a><br><br><br>
<a routerLink="/inscription">S'inscrire</a><br>
{{ error }}
</div>
<div class="confirmationMessage" *ngIf="activatedRoute.snapshot.params['keyWording'] == 'validateInscription'"><br>Un lien de confirmation vous a été envoyé sur votre boîte email afin de valider votre compte. Merci.</div>
<div id="piedDePage"></div>
beim laufen ng dienen bin nicht fangen .
Irgendwelche Vorschläge ??
Ändern
Die Eigenschaft
private activatedRoute
zu public activatedRoute
.Kann Ihr problem gelöst werden.Die Eigenschaft
activatedRoute
ist definiert als private
mit private activatedRoute: ActivatedRoute
.
InformationsquelleAutor firasKoubaa | 2017-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wechsel zu öffentlichen activatedRoute
Sie brauchen, um Ihre activatedRoute
public
. Hier ist eine Checkliste beim Aufbau für die Produktion mit aot. ( Aus diesem github-Projekt https://github.com/asadsahi/AspNetCoreSpa, aber es ist anwendbar auf jede andere eckige Projekt.)AOT - Ahead of time compilation DON ' TS
templateUrls, die angular2-template-loader-plugin und ändern Sie es zu benötigen
zur build-Zeit.
Nicht verwenden Standard-Exporte.
Nicht bilden.controls.steuerelementname, form.get('controlName')
Nicht die Kontrolle.Fehler?.someError, die Kontrolle.hasError('someError')
Nicht die Verwendung von Funktionen in Ihre Anbieter, Routen oder Erklärungen, eine Funktion exportieren, und klicken Sie dann verweisen Sie, dass die Funktion name
Eingänge, Ausgänge, Anzeigen oder Inhalte Kind(ern), Hostbindings, und jedem Feld, das Sie aus der Vorlage verwenden oder kommentieren für Eckige sollte den öffentlichen
Halten activatedRoute private
Halten Ihre activatedRoute privat, Sie können so etwas wie dies tun
}
und in Ihrer Vorlage
es wird passieren, wenn Sie gerade ausführen im Entwicklungsmodus ( ng dienen ), aber es wird nicht, wenn Sie dabei sind zu bauen, für die Produktion mit aot aktiviert.
Das ist nicht meine Frage, warum in
ng build
- Teil meiner privaten Mitglieder zugreifen-können in der html -, während andere einen Fehler auslösen.InformationsquelleAutor brijmcq
Finden Sie weitere Details in Die Eigenschaft ist privat und nur zugänglich innerhalb der Klasse
Original "Fehler" gemeldet, ist kein Fehler sondern normale Einschränkung von AOT zumindest für die Versionen 2, 4, 5. Die variable in der Vorlage verwendet werden muss, um als "öffentlich" bezeichnet. Vorlage behandelt, als eine separate Typoskript Klasse.
Können Sie ändern alle Komponenten variable von privat zu öffentlich. Wenn Sie in Ihre Vorlage.
Oder Sie können mit ng bauen -prod --aot=false für Gebäude
InformationsquelleAutor Henry Zhang
Den Sie zugreifen möchten
activatedRoute
die Sie injiziert haben in Ihremconstructor
alsprivate
variable. Was bedeutet, dass Sie nicht in der Lage, es auf Ihrer Vorlage bei Verwendung von AOT.Entweder ändern Sie es, um
public activatedRoute
oder verwenden Sie es nicht überhaupt aus der Vorlage, um dieses Problem zu beheben.InformationsquelleAutor Chrillewoodz
versuchen mit "ng build-env=prod" - Befehl. Es hat bei mir zur Lösung dieses Fehlers.
InformationsquelleAutor SIddharth Pradhan