angular

news2024/11/25 20:43:03

1. angular获取不到DOM结点

angular中的ngOnInit钩子函数获取不到DOM节点;
这个钩子函数中,表示组件和指令初始化完成,并不是真正的DOM加载完成;
所以这时候需要利用另外一个钩子函数ngAfterViewInit(),是在视图加载完成之后触发,这时候就一定能获取到DOM了;所以建议将DOM操作放到ngAfterViewInit()函数中;
在这里插入图片描述
在这里插入图片描述
这时,box1的颜色才会变为蓝色;
但是这里要注意,当html中的DOM没有写任何angular的指令,比如像ngIf,也是可以获取到DOM的;
在这里插入图片描述
也就是说,在ngOnInit函数中可以获取到box,并且改变颜色;

2. angular利用ViewChild获取DOM节点

标题1中利用了原生JS获取DOM节点,其实还可以利用ViewChild获取DOM节点;
在这里插入图片描述
在这里插入图片描述
利用ViewChild获取myBox节点,并赋值给myBox变量
在这里插入图片描述

3. 父组件利用ViewChild调用子组件

举例:在news组件中引入header组件
在这里插入图片描述

在父组件news中利用装饰器@ViewChild获取子组件实例;
在这里插入图片描述
在父组件中就可以调用子组件中的方法了
在这里插入图片描述
在news组件中的ngAfterViewInit()函数中,调用子组件方法
在这里插入图片描述

4. 侧边栏弹出与隐藏

侧边栏弹出与隐藏可以用CSS3中的transform;
这里要在主页面的body元素设置:width:100%,overflow-x:hidden;x轴超出部分隐藏
在这里插入图片描述
动画效果过渡2秒,transition:all 2s;
在这里插入图片描述

在这里插入图片描述

5. 父子通信

5.1 父组件给子组件传值@input


在这里插入图片描述
这里注意,子组件不仅可以接收父组件传来的变量,也可以接收父组件传来的方法,具体语法和接收变量语法一样

5.2 父组件把自身全部传给子组件

利用[home] = ‘this’,这里的this表示父组件实例
在这里插入图片描述

5.3 父组件获取子组件数据

5.3.1 利用@ViewChild

可以利用标题3讲述的@ViewChild获取;

5.3.2 利用@Output

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例:子组件中有一个方法,run
在这里插入图片描述
父组件中引入了子组件app-footer,并且利用outer拿到组件的数据,这里outer会触发了父组件中的run方法,$event就是子组件的事件对象
在这里插入图片描述

父组件中的run方法,可以打印出子组件传给父组件的数据
在这里插入图片描述

6. 非父子组件的通信

6.1 localStorage

6.2 利用服务services

7. 生命周期函数

有父子组件传值时,会触发ngOnChanges()函数;
请求数据或者一些初始化的方法一般放在ngOnInit()函数中;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用ngIf就是实现组件挂载和卸载的;

执行顺序:先执行构造函数,再执行ngOnChanges()函数,接着ngOnit()函数
在这里插入图片描述

8. 双向数据绑定

需要在app.module.ts中引入FormModule
在这里插入图片描述
在这里插入图片描述

9. RxJS

RxJS是针对异步数据流编程工具;
目前常见的异步编程方法:

  • 回调函数
  • 事件监听/发布订阅
  • Promise
  • Rxjs

9.1 同步方法

  • 新建一个服务
    在这里插入图片描述
  • 在app.modules中引入并注入服务
    在这里插入图片描述
  • 在其他组件中引入、声明并使用服务
    在这里插入图片描述
    这时,利用this.require.getData()执行的是同步方法,获取到了服务中的同步方法

9.2 异步方法

服务中的getCallbackData属于异步方法
在这里插入图片描述
在这里插入图片描述
此时打印出来的是undefined,说明无法获取异步数据;

解决办法:

  1. 利用回调函数
    服务中的getCallbackData在这里插入图片描述
    在这里插入图片描述

  2. 利用Promise
    在这里插入图片描述
    在这里插入图片描述

  3. RxJS处理异步
    成功用observer.next(‘传入数据’);
    失败用observer.error(‘传入数据’);
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/365229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传统单体架构存在哪些问题?

传统单体应用架构模型通常我们所使用的传统单体应用架构都是模块化的设计逻辑,程序在编写完成后会被打包并部署为一个具体的应用,而应用的格式则依赖于相应的应用语言和框架。例如,在网上商城系统中,Java Web工程通常会被打成WAR包…

SpringBoot的自动装配原理、自定义Starter与SPI机制

一、前言Spring简直是java企业级应用开发人员的春天,我们可以通过Spring提供的ioc容器,避免硬编码带来的程序过度耦合。但是,启动一个Spring应用程序也绝非易事,他需要大量且繁琐的xml配置,开发人员压根不能全身心的投…

学习国家颁布的三部信息安全领域法律,理解当前工作中的信息安全合规要求

目录三部信息安全领域的法律文件三部法律的角色定位与联系三部法律的适用范围三部法律的主要履职部门三部法律条文章节结构中的共性三部法律中的一些次重点章节网络安全法的重点章节数据安全法的重点章节个人信息保护法的重点章节关于工业和信息化部行政执法项目清单三部信息安…

ubuntu本地访问nas

需求 本地磁盘空间太小,本地网络里有个nas,希望将nas作为数据盘挂载到本地使用。 方法1 基于sftp访问nas 首先nas设置时要打开sftp访问功能。 然后用ubuntu桌面访问服务器的功能登录sftp,类似如下指令 sftp://user192.168.0.100 ubuntu下…

已上传的微信小程序源码丢失,通过反编译找回

前提:你的程序源码已经上传,可以打开体验版或开发版小程序。工具:小程序包解密:链接: https://pan.baidu.com/s/1A2ZCqflr4jMLfg03U_LWHQ 提取码: 4ntn wxappUnpacker:链接: https://pan.baidu.com/s/1HQS8xQsqrhc4hzi…

图纸等敏感文件数据外发时 如何确保效率和安全性?

很多企业随着业务的发展,需要频繁的与外部供应商、合作伙伴之间进行数据的交换和使用。尤其是制造型企业,可能每天都要与几十、上百家供应商及合作伙伴进行产品数据交换。目前,大多数企业已经在内部实施了PDM/PLM系统,实现了对组织…

coco数据集训练nanodet详细流程

github地址 首先要配置环境 conda create -n nanodet python3.8 -y conda activate nanodet确认一下cuda版本 nvcc -V确认是11.3之后,要安装11.3对应的pytorch版本。 本机装pytorch1.12.1后面运行的时候会报错(torch没有经过cuda编译)&…

C语言中到底是非0表示真,还是1表示真?

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重点说一说C语言中到底是非0表示真,还是1表示真?这就是说到C语言中的两个常见运算形式,即关系运算符和逻辑运算符。为照顾急性子的同学,先直接说结论…

【概念辨析】数组指针指针数组

目录 一、数组指针 二、指针数组 三、 数组指针的数组名不是二级指针 再来说最关键的:数组指针为什么不是二级指针呢? 代码如下: 四、指针数组的数组名是二级指针 在复习,在考试,在焦虑。 又一次学习到了数组指针和指针…

MybatisPlus的注意点

userService是基础于ServiceImpl 而servicfeImpl中要传入一个继承于BaseMapper的类和一个实体类 这个继承于BaseMapper的类就是我们的userMapper,所以userMapper要集成BaseMapper 重点来了, UserService中的我们去调用Impl实现类的saveOrUpdate方法&am…

神经网络中超参数调节和优化技巧、优化算法的分类介绍

目录什么是卷积神经网络超参数的调整学习率迭代次数批次大小激活函数隐含层的数目和单元数权重初始化Dropout方法网格搜索和随机搜索神经网络优化算法介绍优化算法分类一阶优化梯度下降算法二阶优化梯度下降算法随机梯度下降(SDG)小批量梯度下降进一步优化梯度下降算法动量方法…

Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。(极简解决办法)

一、遇到问题。 在需要启动Redis客户端的时候,会发现会报这个错误。报这个错误的原因就是Redis的服务端没有开启,那Redis的客户端是访问不了的 二、解决办法。 1.解决的办法就是要启动服务端,让这个客户端可以访问到。启动服务端最简单不会…

秒懂算法 | 基于朴素贝叶斯算法的垃圾信息的识别

本文将带领大家亲手实现一个垃圾信息过滤的算法。 在正式讲解算法之前,最重要的是对整个任务有一个全面的认识,包括算法的输入和输出、可能会用到的技术,以及技术大致的流程。 本任务的目标是去识别一条短信是否为垃圾信息,即输入为一条文本信息,输出为二分类的分类结果。…

百度AI人脸比对

文章目录一、百度智能云1、注册登录2、创建应用3、完成认证领取免费测试资源二、springboot集成1、pom2、配置application.yml3、官方文档三、逻辑分析四、代码1、图片上传2、格式转换3、百度Token获取4、工具类5、实体类6、AI人脸验证7、AI人脸比对8、controller接口一、百度智…

LeetCode010之正则表达式匹配(相关话题:动态规划)

题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入&…

vue-print-nb使用

下载 pnpm add vue-print-nb --save 全局注册&#xff0c;使用插件的注册方式 或 局部注册自定义指令 import print from vue-print-nb directives: {print } 绑定到点击按钮上 <button v-print"content">Print!</button> 设置配置项-常用 id和popTi…

集群演变( Redis 案例)

文章目录集群演变单节点主从模式哨兵模式Redis Cluster 集群本文浅谈一下集群的发展&#xff0c;用 Redis 做例案例集群演变 集群演变思路 #mermaid-svg-lOtU0w7tegcH7NSB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

到底是谁还不会写学生管理系统?今天用python来制作一个

前言 咳咳&#xff0c; 想知道还有多少宝子&#xff0c;还在忙毕业设计的事情 准备的怎么样呢&#xff1f; 有些宝子 学python学这么久&#xff0c;还不会自己写出来个学生管理系统 唉&#xff0c;能怎么办呢&#xff0c;我来分享给你们看看呗 完整 代码 点击 领取 即可 话不…

VLAN配置

Vlan的作用 vlan&#xff08;Virtual Local Area Network&#xff09;虚拟局域网 VLAN最大的好处是可以隔离冲突域和广播域 当一个局域网内广播次数过多会影响网络性能 企业越来越大&#xff0c;网络需求发生了变化&#xff0c;内容的终端也成倍增加&#xff0c;流量也增大…

Kotlin 35. Android Gradle 介绍

一起来学Kotlin&#xff1a;概念&#xff1a;22. Android Gradle 介绍 当我们刚开始进行安卓开发的时候&#xff0c;没有人关注 Gradle。我们主要专注于编写 Kotlin 代码和尽可能美观的 Android 应用程序。但随着时间的变化&#xff0c;我自己对 Gradle 感到越来越好奇。到底什…