如何在私有函数Angular 2上传递var

时间:2017-09-13 05:29:43

标签: angular typescript

我有这个示例代码: 为什么未将年份传递给initGridOptions函数?怎么做才能在那里看到它?

我试图公开但是没有用。

我不太明白是否有必要使函数initGridOptionsprivateю。

export class JobTimePhasingComponent implements OnInit, ComponentHasUnsavedChanges {

        public key: string = "timePhasing";
        public year: string;
        job: JobViewModel;

        constructor(
            private router: Router,
            private toastr: ToastsManager
        ) {
            this.initGridOptions();
        }

        ngOnInit(): void {
            this.refresh();
        }
         private initGridOptions(): void {
        ...
                colDefs.push({
                    headerName: this.year, (UNDEFINED)
                    field: "data.Total",
                    valueGetter: cellTotalValueGetter,
                    width: 100,
                });
        }

        refresh(): void {
            let jobId = +this.route.snapshot.parent.params['id'];
            this.jobService.getJob(jobId).then(result => {
                this.fy = result.Object.FinancialYearName;
            });
        }

1 个答案:

答案 0 :(得分:0)

这与参数或函数的可访问性无关,因为在这些情况下,当您的问题是显示参数undefined时,您会收到编译错误。

根据您的问题,您只需初始化变量即可。您可以在定义它的确切位置执行此操作:

year: string = ''; // or any other proper initial value

或者可能在OnInit中,有时在constructor中,最好只留下后者注入依赖注入,如下所示:

this.year = ''; // or any other proper initial value

然后你可以放心,如果你在初始化后的任何地方使用它,至少它有一个值。