使用输入绑定

时间:2017-09-29 13:03:03

标签: angular

我正在尝试使用输入绑定将数据从父组件传递到子组件。这是一个简单的布尔字段。我按照Angular tutorial来完成它但我仍然无法从父组件到子组件获取任何内容。

另外我不知道它是否值得一提,起初我得到了以下错误然后我在我的app模块中添加了模式:[NO_ERRORS_SCHEMA]它就消失了。 enter image description here

下面是我要传递的变量的父组件.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>

2 个答案:

答案 0 :(得分:0)

html中的属性名称应与@Input属性名称匹配。

尝试以下,

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

答案 1 :(得分:0)

你应该在你的组件中做:

@Input('data') isAnAuthorizedUser;

然后在你的模板中

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