gpt4 book ai didi

angular - 无法从我的 Controller /构造函数访问输入

转载 作者:太空狗 更新时间:2023-10-29 16:47:05 25 4
gpt4 key购买 nike

我有一个带有 @Input 的简单 Angular 2 组件,我将其绑定(bind)到模板。模板显示输入数据,但我无法从构造函数访问它:

import {Component, View, bootstrap, Input} from 'angular2/angular2';
import DataService from './data-service';

@Component({
selector: 'app-cmp'
})
@View({
template: `{{data.firstName}} {{data.lastName}}` //-> shows the correct 'data'
})
export default class NamesComponent {
@Input() data: any;
constructor(dataService: DataService) {
console.log(this.data);//undefined
}
}

这是一个plunker举个例子(见“names-component.ts”)。

我做错了什么?

最佳答案

因为 Input 属性在设置 View 之前不会被初始化。根据docs ,您可以在 ngOnInit 方法中访问您的数据。

import {Component, bootstrap, Input, OnInit} from '@angular/core';
import DataService from './data-service';

@Component({
selector: 'app-cmp',
template: `{{data.firstName}} {{data.lastName}} {{name}}`
})
export default class NamesComponent implements OnInit {
@Input() data;
name: string;
constructor(dataService: DataService) {
this.name = dataService.concatNames("a", "b");
console.log(this.data); // undefined here
}
ngOnInit() {
console.log(this.data); // object here
}
}

关于angular - 无法从我的 Controller /构造函数访问输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com