angular8自定义管道、指令以及获取dom值
版本:

1、自定义管道:
example: 定义一个*ngFor 可以获取key值的管道
keyObject.pipe.ts
// key value 管道
import { Pipe, PipeTransform } from '@angular/core'; @Pipe({
name: 'getKeys'
}) export class keyValue implements PipeTransform {
transform(value, args: string[]): any {
let keys = [];
for (let key in Object.keys(value)) {
console.log(key);
keys.push({ key: key, value: value[key] });
}
return keys;
}
} // 使用操作
/*
step 1
app.module.ts 引入
import { keyValue } from './common/keyObject.pipe';
@NgModule({
declarations: [
keyValue,
],
step 2
// 循环的时候使用
// 原始值[{name: '', point: ''}]
// 转换的值[{key:0 , value:{name: '', point: ''}}]
<div *ngFor="let item of chipsList | getKeys">{{item.value.name}}<input type="number" step="0.01" min="0"
[value]="item.value.point" (change)="this.changeValue(item.key);" class="inputClass" /></div> */
2、自定义指令:
example:定义一个移入标签高光显示的指令
highLight.ts
// highlight指令
import { Directive, ElementRef, HostListener, Input } from '@angular/core'; @Directive({ selector: '[appHighlight]' }) export class HighlightDirective { @Input('appHighlight') highlightColor: string; //highlightColor是appHighlight指令的别名 constructor(private el: ElementRef) {
// el.nativeElement.style.backgroundColor = 'yellow';
}
private highlight(color: string) {
this.el.nativeElement.style.backgroundColor = color;
}
@HostListener('mouseenter') onMouseEnter() {
this.highlight(this.highlightColor);
} @HostListener('mouseleave') onMouseLeave() {
this.highlight(null);
}
} // 使用操作
/*
step 1
app.module.ts 引入
import {HighlightDirective} from './common/highLight';
@NgModule({
declarations: [
HighlightDirective,
],
step 2
对某标签使用高光
this.color = 'yellow'; // ts文件定义颜色
<p [appHighlight] = "color"></p> */
3、使用原生html dom的内容
example: 获取input框的value值
原来的写法:document.getElementsByClassName('inputClass')[index]).value 值可以获取到,但是控制台会输出error,而且打包会失败
正确的写法:<HTMLInputElement>document.getElementsByClassName('inputClass')[index]).value 这样也可以获取到值,控制台没有error,打包也不会报错
同理 获取image 的src 属性 <HTMLImageElement>
angular8自定义管道、指令以及获取dom值的更多相关文章
- Vue自定义指令获取DOM元素
我们知道,Vue.js的核心是数据驱动,当数据有所变化时,DOM就会被更新,比如: <span v-text="msg"></span> export de ...
- vue 获取dom的css属性值
<template> <div id="topInfo" ref="topInfo" style="width: 200px;hei ...
- attr prop jquery关于获取DOM属性值的两个函数
$('#domid').attr('acitve') $('#domid').prop('checked') // 在使用JQUERY获取DOM元素的属性时,有两个函数,attr 和 prop < ...
- C# 如何获取自定义的config中节点的值,并修改节点的值
现定义一个方法 DIYConfigHelper.cs using System; using System.Xml; using System.Configuration; using System. ...
- (四)Jsoup 获取 DOM 元素属性值
第一节: Jsoup 获取 DOM 元素属性值 Jsoup获取DOM元素属性值 比如我们要获取博客的href属性值: 我们这时候就要用到Jsoup来获取属性的值 : 我们给下示例代码: package ...
- vue 组件传递值以及获取DOM元素的位置信息
1.父组件 select_li.vue 1.1 父组件模板 <template> <div id='selectLi' ref="selectLi"> &l ...
- 获取get值&DOM例题
获取get值: <body> <form action="9.26获取get值.html" method="get"> ...
- vue(4)—— vue的过滤器,监听属性,生命周期函数,获取DOM元素
过滤器 vue允许自定义过滤器,我个人认为,过滤器有两种,一种是对数据的清洗过滤,一种是对数据切换的动画过滤 数据切换的动画过滤 这里还是利用前面的动态组件的例子: 这里由于没办法展示动画效果,代码如 ...
- html 跳转页面传参、点击获取DOM参数
虽然现在前端框架已经很多,尤其是几大流行框架,比如Vue,React,Angular 等,已经去DOM化,但是还是有很多公司仍在使用 HTML + CSS + JS . 这里记载一下用到的HTML传参 ...
随机推荐
- python 协程与go协程的区别
进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...
- VIM操作记录
=============================================== 2019/12/12_第1次修改 vr7jj ============================= ...
- luogu P2345 奶牛集会 |排序+树状数组
题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为X ...
- 【转载】Dockerfile文件详解
什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指令自动生成映像. docker ...
- BZOJ2809 dispatching(左偏树)
在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都有且仅有一个上级.为保密,同时增强忍者们的 ...
- HDU-6114
車是中国象棋中的一种棋子,它能攻击同一行或同一列中没有其他棋子阻隔的棋子.一天,小度在棋盘上摆起了许多車--他想知道,在一共N×M个点的矩形棋盘中摆最多个数的車使其互不攻击的方案数.他经过思考,得出了 ...
- 孟文静浅谈AG百家庄闲技巧,下三路的运用以及三株路的正反打法
关于三珠路的各种打法,这里我做个详细的讲解,如想了解更多打法可+qq<738不要字4633>或关注VX公众号<孟文静1> 三珠路的打法源于叶汉,叶汉的打法是——三珠路打反 先看 ...
- js打乱数组排序
用到的知识点:Math.random()//用于打乱数组索引 random() 方法可返回介于 0(包含) ~ 1(不包含) 之间的一个随机数. var arr=[1,2,3,4,5,6]; for( ...
- Brett Beauregard大神的Arduino PID算法
大神的全部PID http://brettbeauregard.com/blog/category/pid/ Improving the Beginner’s PID – Introduction I ...
- Test 1022
T1 AERODROM (二分答案 TimeLimit: 1000MS Memory Limit: 32768KB \(N\)个登机口,办理登机业务,第\(i\)个窗口的单位办理时间为\(T_i\), ...