Erreur: Modèle erreurs d'analyse: ne Peut pas se lier à 'myProperty', car il n'est pas connu propriété de myComponent'
Après la mise à niveau à partir Angulaire 2.1.0 à 2.4.3 et webpack de 2.1.0-bêta.25-2.2.0-rc.4-je recevoir cette erreur si je lance mon application web (le build fonctionne très bien sans erreurs):
Error: Template parse errors: Can't bind to 'center' since it isn't a known property of 'placeFilter'.
Pour le moment j'ai une centrale unique modèle comme celui-là (oui, je sais 🙂 je vais le changer par la suite):
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppRoutingModule } from './app.routes';
...
import {MapComponent} from './map/map/map.component';
...
import {PlaceFilterComponent} from './map/shared/components/placeFilter.component';
...
@NgModule({
imports: [BrowserModule, AppRoutingModule, FormsModule, HttpModule],
declarations: [...
MapComponent,
...
PlaceFilterComponent,
...
],
bootstrap: [AppComponent]
})
export class AppModule { }
Mon MapComponent contient un sous-composant appelé PlaceFilterComponent:
import { Component, OnInit, OnDestroy, Input, Output, NgZone } from '@angular/core';
import { ActivatedRoute, Params, Router} from '@angular/router';
import {Subscription} from "rxjs";
import {TimerObservable} from "rxjs/observable/TimerObservable";
import services
import models
@Component({
selector: 'emersy-content',
templateUrl: './map.component.html',
providers: [myServices]
})
export class MapComponent implements OnInit, OnDestroy {
...
constructor(private placeService: PlaceService, private externalService: ExternalServiceService, private zone: NgZone, private route: ActivatedRoute, private router: Router) {
...
});
}
...
}
Ici mon MapComponentTemplate:
<div class="filterbox-map" *ngIf="!onlyMap">
<place-filter (onSearchLocationChange)="searchLocationChange($event)" (onShowSideBarButtonClick)="showSideBarButtonClick()" [center]="center" [searchTerm]="searchTerm"></place-filter>
</div>
Et mon PlaceFilter Composant est fait comme ceci:
import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';
import {Center} from '../models/center'
declare var google: any;
@Component({
selector: 'place-filter',
templateUrl: './placeFilter.component.html'
})
export class PlaceFilterComponent {
...
private _center: Center;
get center() {
return this._center;
}
@Input() set center(center: Center) {
this._center = center;
}
constructor() {
}
...
}
Ma structure de dossier comme ceci:
app
L app.module.ts
L map
L map
| L map.component.ts
| L map.component.html
L shared
L components
L placefilter.component.ts
L placefilter.component.html
Où est
Où sont
désolé les gars myComponent = placeFilter et myProperty = center
myProperty
utilisé dans votre code? Le code dans votre question n'est pas de le mentionner.Où sont
myProperty
et myComponent
utilisé ici?désolé les gars myComponent = placeFilter et myProperty = center
OriginalL'auteur cpiock | 2017-01-18
Vous devez vous connecter pour publier un commentaire.
J'ai aussi un code comme ceci: @Input() set selectedLayers(selectedLayers: Array<GeoService>) { this._selectedLayers = selectedLayers; si (selectedLayers != null) { cela.selectedLayersChange(ce.selectedLayers); } } Comment puis-je le faire sans propriétés?
ok résolu avec ngonchanges
En double "identifiant" sur angulaire 6. Pouvez-vous séparer le code en deux blocs avant/après ?
OriginalL'auteur ani5ha