2017-09-29 15 views
0

我想使用輸入綁定將數據從父組件傳遞給子組件。這是一個簡單的布爾字段。我跟着這個Angular tutorial來完成它,但我仍然無法從父母到孩子的任何組件。使用輸入綁定將數據從父組件傳遞到子組件時的錯誤

另外我不知道它是否值得一提,起初我得到了下面的錯誤,然後我添加架構:[NO_ERRORS_SCHEMA]在我的應用程序模塊中,它消失了。 enter image description here

下面是我想通過可變我父母component.ts代碼:

public isAnAuthorizedUser: boolean = true; 

    ngOnInit(): void { 

     if (test != null) { 
      console.log("Inside NGOnInit on page 1"); 
      this.route.params 
       .switchMap((params: Params) => this._Service.getRequestById(+params['id'])) 
       .subscribe(
       data => { 
        this.Model = data; 
        if (this.Model.isAuthorizedToView != true) 
        { 
         this.isAnAuthorizedUser = false; 
         this._router.navigate(['/dashboard']); 
        } 
     } 

這裏是我想通過我的父組件的HTML。

<div> 
       <isAnAuthorizedUser [data]="isAnAuthorizedUser"></isAnAuthorizedUser> 
      </div> 

下面是我的子組件TS文件代碼:

import { Component, OnInit, Input, Injectable, ViewChild } from '@angular/core' 
import { 
    FormsModule, 
    ReactiveFormsModule, 
    FormGroup, 
    FormControl 
} from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 

@Component({ 
    moduleId: module.id, 
    selector: 'ReservationFormPage1', 
    templateUrl: './ReqDashboard.html' 
    , 
    providers: [ReqFormService, CompleteRequestService, IncompleteRequestService] 
}) 

export class ReservationDashboardComponent implements OnInit { 

    @Input() 
    isAnAuthorizedUser: boolean; 
       ngOnInit(): void { 
        console.log(this.isAnAuthorizedUser); 
    } 

} 

下面是HTML代碼,我正在測試訪問我的傳中varianble:

<div *ngIf ="isAnAuthorizedUser"> 
     <span>{{this.isAnAuthorizedUser}}</span> 
    </div> 
+0

如果做到這一點''元素? – n00dl3

+0

@ n00dl3所以你在暗示什麼。請解釋一下 –

+0

我剛剛在html中添加了元素而不添加任何地方@ n00dl3 –

回答

0

屬性名稱html應該匹配您的@Input屬性名稱的名稱。

嘗試下面,

<isAnAuthorizedUser [isAnAuthorizedUser]="isAnAuthorizedUser"></isAnAuthorizedUser> 
0

你應該在你的組件做:

@Input('data') isAnAuthorizedUser; 

,然後在你的模板來自

<isAnAuthorizedUser [isAnAuthorizedUser]="true"></isAnAuthorizedUser> 
相關問題