首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将对象从父对象传递给子对象

将对象从父对象传递给子对象
EN

Stack Overflow用户
提问于 2018-04-08 03:24:38
回答 3查看 1.7K关注 0票数 0

我有一个约定对象,必须作为子组件的输入传递,当我在子模板中调用它时,会显示约定id,但当我试图在console.log中使用约定时,会出现未定义的情况。我尝试将我的console.log放在子构造函数以及ngOnInit、ngAfterViewInit和ngOnChanges中。对于ngOnChanges,当我只将约定的id作为子组件的输入传递时,它工作得很好,但是我需要传递约定而不是它的id。

index.component.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component({
    templateUrl: './index.template.html',
    selector: 'be-convention-update',
    changeDetection: ChangeDetectionStrategy.OnPush
})
export class ConventionUpdateComponent {

    private convention$: Convention;
    private conventionId: number;

    constructor(private route: ActivatedRoute,
        private conventionService: ConventionService) {
        this.route.params.subscribe(
            (params: any) => {
                this.conventionId = params['id'];
                this.conventionService.getOne(this.conventionId).subscribe(response => this.convention$ = response);
            }
        );
    }

}

index.template.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<be-form-convention [convention]="convention$"></be-form-convention>

form.component.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component({
    selector: 'be-form-convention',
    templateUrl: './form.template.html',
    changeDetection: ChangeDetectionStrategy.OnPush
})
export class ConventionFormComponent implements OnChanges, OnInit {

    @Input() convention: Convention;

    constructor() {
    }

    public ngAfterViewInit() {
      console.log(this.convention); //undefined
    }

    public ngOnInit(): void {
      console.log(this.convention); //undefined
    }

    public ngOnChanges(changes: SimpleChanges): void {
      const object: SimpleChange = changes.convention;
      console.log('prev value: ', object.previousValue); //undefined
      console.log('got name: ', object.currentValue); //undefined
    }

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-08 03:42:48

根据我的理解,当您接收到输入或输入值更改时,您希望做一些操作。

可以在set函数中使用输入指令,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
_convention: Convention;
@Input()
set convention(convention: Convention) {
    this._convention = convention;
    //the code you want to handle after input is received
}
票数 1
EN

Stack Overflow用户

发布于 2018-04-08 06:34:56

由于这是一个异步操作,我建议您等到约定获得值时再使用*ngIf加载子组件,而约定对象不是空的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ng-container *ngIf="convention$">
<be-form-convention [convention]="convention$"></be-form-convention>
</ng-container>
票数 1
EN

Stack Overflow用户

发布于 2018-04-08 04:18:38

对于组件-组件通信,我总是使用服务。

我所做的是:创建一个服务并创建两个函数(getData和setData)。

每当我想将一些数据从一个组件发送到另一个组件时,我就调用setData方法,当我想在其他组件中接收数据时,我使用getData方法。

下面是一个示例:

从“@角/核心”导入{ Injectable };

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Injectable()
export class DataExchange {

  data; //Global Variable of 'any' type.

  setData(data){
this.data = data;
  }

getData():any{
  return this.data;
}
}
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49717314

复制
相关文章
iOS表视图单元格高度自适应
iOS表视图高度自适应可以节省很多麻烦,尤其是涉及到复杂的业务逻辑时,今天尝试了使用Masonry和FDTemplatelayoutCell来布局表视图单元格,从而达到单元格高度自适应的效果,这里就总
梧雨北辰
2018/04/24
1.8K0
iOS表视图单元格高度自适应
如何在 Bash 中将字符串计算为数字?
当您尝试在 bash 中进行算术运算时,这会产生问题,您尝试添加的数字会给您带来奇怪的结果。
网络技术联盟站
2022/04/21
1.5K0
如何在 Bash 中将字符串计算为数字?
iOS 系统中的视图动画
动画为用户界面的状态转换提供了流畅的可视化效果, 在 iOS 中大量使用了动画效果, 包括改变视图位置、 大小、 从可视化树中删除视图, 隐藏视图等。 你可以考虑用动画效果给用户提供反馈或者用来实现有趣的特效。
beginor
2020/08/10
2.2K0
iOS开发之表视图爱上CoreData
  在接触到CoreData时,感觉就是苹果封装的一个ORM。CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作。CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的commit,还
lizelu
2018/01/11
2.2K0
iOS开发之表视图爱上CoreData
如何在 Python 中将对象打印为字符串?
在 Python 编程中,有时我们需要将对象转换为字符串格式,以便于打印输出、日志记录或数据存储等操作。Python 提供了多种方法来将对象转换为字符串。本文将详细介绍在 Python 中将对象打印为字符串的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/07
1.7K0
[译]《iOS Human Interface Guidelines》——Table View表视图
API NOTE 查看Table View Programming Guide for iOS和UITableView来学习更多关于在你的代码中定义表视图的内容。
Cloudox
2021/11/23
2.4K0
[译]《iOS Human Interface Guidelines》——Table View表视图
iOS 中获取某个视图的截图
最近在做SDK的截图,想触发类似系统的截屏功能,找了一圈,总结一下靠谱的几种方式。 我写了个UIView 的category,将这几种方式封装和简化了一下。
Haley_Wong
2018/08/22
3K0
iOS中将颜色转为图片
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/54913804
用户1451823
2018/09/13
9850
MySQL单表查询详细解析
  3,group by:将取出的一条条数据进行分组,如果没有group by,则整体作为一组
星哥玩云
2022/08/17
2.6K0
【iOS7一些总结】9、与列表显示(在):列表显示UITableView
列表显示,顾名思义它是在一个列表视图的形式显示在屏幕上的数据的内容。于ios在列表视图UITableView达到。这个类在实际应用中频繁,是很easy理解。这里将UITableView的主要使用方法总结一下以备查。
全栈程序员站长
2022/07/06
1.9K0
【iOS7一些总结】9、与列表显示(在):列表显示UITableView
如何在Linux 的 Vim 中将缩进宽度设置为 2 或 4 个空格?
在您的 vimrc 文件(位于 ~/.vimrc)中,添加以下行以在 Vim 中自动使用 2 个空格而不是制表符。
网络技术联盟站
2022/06/12
6.9K0
如何在Linux 的 Vim 中将缩进宽度设置为 2 或 4 个空格?
Android中的视图焦点Focus的详细介绍
在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件。一个窗口中一个时间内只能有一个具有焦点的控件。在早期具有滚轮设备的android系统中以及现在的智能TV电视应用中视图的焦点控制就非常重要了。而在触摸设备上通常默认情况下只有EditText控件才具有焦点,而我们通常会遇到的一个问题就是当进入一个具有EditText的界面时键盘就会自动弹出,而且有时候可能无法消失,但需求可能是进入时不弹出键盘。而这些所有的东西都是和视图的焦点有关,因此本文的重点就是介绍视图的焦点属性和方法,get到这些技术点后你就可以完全控制和使用这些特性了。
欧阳大哥2013
2018/08/22
2.6K0
如何在IOS上发布APP详细教程
企业相关文字信息(英文):包括名称、注册地址、固定电话、网址、统一社会信用代码、营业执照扫描件等。
iOS程序应用
2023/04/13
9300
iOS中将图片保存到自定义相册中
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53412675
用户1451823
2018/09/13
1.2K0
Python中将图像切分为小的patch
假如有张1000x1000的图像,我们要将它切成20x20的小patch,该怎么处理呢? 最简单的方法就是采用两重for循环,每次计算小patch对应的下标,在原图上进行crop:
王云峰
2023/10/23
4810
ASP.NET Core 5.0 MVC中的视图分类及使用——布局视图、启动视图、导入视图、详细视图、分部视图
我们可以在这个页面,添加一些全局性的内容,比如全局变量等,然后在具体View页面使用这些变量值
明志德道
2023/10/21
4030
ASP.NET Core 5.0 MVC中的视图分类及使用——布局视图、启动视图、导入视图、详细视图、分部视图
在Swift中创建可缩放的图像视图
没有什么比完美的图片更能让你的应用程序熠熠生辉,但如果你想让你的应用程序用户真正参与并与图片互动呢?也许他们想放大、平移、掌握这些图像?
玖柒的小窝
2021/11/05
5.7K0
2.4 PE结构:节表详细解析
节表(Section Table)是Windows PE/COFF格式的可执行文件中一个非常重要的数据结构,它记录了各个代码段、数据段、资源段、重定向表等在文件中的位置和大小信息,是操作系统加载文件时根据节表来进行各个段的映射和初始化的重要依据。节表中的每个记录则被称为IMAGE_SECTION_HEADER,它记录了一个段的各种属性信息和在文件中的位置和大小等信息,一个文件可以由多个IMAGE_SECTION_HEADER构成。
微软技术分享
2023/10/11
3890
2.4 PE结构:节表详细解析
2.6 PE结构:导出表详细解析
导出表(Export Table)是Windows可执行文件中的一个结构,记录了可执行文件中某些函数或变量的名称和地址,这些名称和地址可以供其他程序调用或使用。当PE文件执行时Windows装载器将文件装入内存并将导入表中登记的DLL文件一并装入,再根据DLL文件中函数的导出信息对可执行文件的导入表(IAT)进行修正。
微软技术分享
2023/10/11
2380
2.6 PE结构:导出表详细解析
点击加载更多

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文