2017-10-16 4 views
1

에 존재하지 않는 :이 오류가 계속재산권 내가이 각도 4 구성 요소가 구성 요소

export class MenuComponent { 

constructor(private menuService: MenuService) { } 


@Input(nodes):any; 

    getMenu(path:string): void { 
    this.menuService.getData(path).subscribe(data => { 
     // Read the result field from the JSON response. 

     let newValue = JSON.stringify(data).replace('{"Node":', '['); 
     newValue = newValue.substring(0,newValue.length - 1); 
     newValue+="]"; 
     const menu=JSON.parse(newValue); 
     this.nodes = menu; 
     }); 

} 
} 

: Property 'nodes' does not exist on type 'MenuComponent'을하고 nodes 속성이 바로 거기에 있기 때문에 내가 왜 아무 생각이 없습니다.

+0

'@Input() nodes : any;'? – jonrsharpe

+0

무엇이 잘못 되었나요? – eli

+0

내 의견을 실제로 작성한 내용과 비교해보십시오! – jonrsharpe

답변

0

저는 일반적으로 이런 식으로 @input 변수를 정의합니다.

@Input() nodes: any; 

나는 두 가지 문제는 구성 요소가 undefined를 얻거나 값을받지 뷰에서

  1. 을 볼 수 있습니다. 부모 구성 요소가 각 구성 요소 수명주기에 적절한 값을 전달하고 있는지 확인하십시오. nodes 값이 정확한지 확인하십시오.

또한

@Input() hero: Hero; 
@Input('master') masterName: string; 

에서, ngInit 수명주기 후크를 추가하고 두 가지 방법으로 입력을 제공 할 수

ngOnInit() { 
    this.nodes = this.nodes || ''; 
    } 
1

어떤 일을받지 않은 경우 디폴트 값을 설정할 수 있습니다 공개 속성 이름 (bindingPropertyName)을 제공하고 있지만 구성 요소 클래스에 사용할 수있는 속성은 없습니다.

@Input(nodes):any; 

@Inputhere에 대해 자세히 알아보십시오.

희망이 도움이됩니다!

관련 문제