2017-01-18 7 views
3

Angular 2.1.0から2.4.3に、webpackを2.1.0-beta.25からアップグレードした後2.2.0-rc.4に私はこのエラーをrecive私は私のWebアプリケーション(ビルドはエラーなしで正常に動作します)を実行する場合:現時点でエラー:テンプレート解析エラー:「myComponent」という既知のプロパティではないため、「myProperty」にバインドできません。

Error: Template parse errors: Can't bind to 'center' since it isn't a known property of 'placeFilter'. 

を私は(はい、私は知っている。このような1つの中央のモデルを持っています: - )私は)後でそれを変更します:

012:

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 { } 

私MapComponentは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) { 
     ... 

     }); 
    } 

    ... 
} 

私MapComponentTemplate:

<div class="filterbox-map" *ngIf="!onlyMap"> 
    <place-filter (onSearchLocationChange)="searchLocationChange($event)" (onShowSideBarButtonClick)="showSideBarButtonClick()" [center]="center" [searchTerm]="searchTerm"></place-filter> 
</div> 

そして、私のPlaceFilterコンポーネントは次のように構成されています

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() { 

    } 
... 
} 

マイフォルダ構造は、このようなものです:

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 
+0

あなたのコードで 'myProperty'がどこに使われていますか?あなたの質問のコードには言及していません。 –

+0

ここで 'myProperty'と' myComponent'はどこに使用されていますか? – yurzui

+0

残念ながら、myComponent = placeFilterとmyProperty = center – cpiock

答えて

2
export class PlaceFilterComponent { 
... 
    private _center: Center;  
    get center() { 
     return this._center; 
    } 
    // try like this 
    @Input() center:Center; 



    constructor() { 

    } 
... 
} 
+0

のプロパティはサポートされていませんか?私がプロパティから変数に変更するとうまくいくようです。しかし私はすべての私のプロパティを変更する必要があります...いいえ – cpiock

+0

私はまたこのようなコードを持っています: @Input()setLayers(selectedLayers:Array ){ this._selectedLayers = selectedLayers; if(selectedLayers!= null){ this.selectedLayersChange(this.selectedLayers); } } プロパティなしでこれを行うにはどうすればよいですか? – cpiock

+0

okがngonchangesで解決されました – cpiock

関連する問題