1 事件处理

1.1   鼠标移入事件触发

(mouseenter)=" "

              eg:   (mouseenter)="isCollapsed=false"        通过给isCollapsed赋值来实现隐藏显示

1.2   鼠标移出事件触发

         (mouseleave)=" "
 
               eg:  (mouseleave)="isCollapsed=true"          通过给isCollapsed赋值来实现隐藏显示
       
   1.3  点击事件触发
 
          (click)=" "
 
              eg: (click)="toggleCollapsed()"                     点击事件,执行一个函数
 
2  结构型指令
 
    2.1  angular 内置指令 
 
           2.1.1  元素显示隐藏指令 (布尔值,为true时显示,为false时隐藏)
      

                *ngIf=" "
 
                     eg:  *ngIf="leveldisplay"             leveldisplay=true 时显示  
  
            2.1.2  元素迭代指令  
    
                *ngFor=""
 
                      eg: *ngFor="let hero of heroes"      heroes 是要迭代的数据 , hero 为迭代的属性,可以在它身上取到属性值  如 hero.id
 
      2.2 angular  自定义指令
 
          2.2.1  创建自定义组件
 
                 引入创建指令需要依赖的组件库
                 import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
                 Directive       指令装饰器
                TemplateRef      生成的 <ng-template> 元素中创建一个内嵌的视图,并把这个视图插入到一个视图容器中,可以使用TemplateRef取得 <ng-template> 的内容
                ViewContainerRef     通过ViewContainerRef来访问这个视图容器。
 
                 在指令装饰器中,选择在html中创建的指令属性名字, 这个方括号定义出了一个 CSS 属性选择器
                 @Directive({ selector: '[appUnless]'})
 
                 都注入到指令的构造函数中,作为该类的私有属性。
      constructor(  private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef) { }
               
                 自定义指令的执行代码
 
                 声明一个控制属性
                  private hasView = false;
 
                  设置自定义的属性appUnless 的值的类型为布尔值
                 @Input()   set appUnless(condition: boolean) {
                      判断  布尔值不为真,且 声明的变量值不为真
                      if (!condition && !this.hasView) {
                             在视图中创建一个 内嵌的视图,并把这个视图插入到一个视图容器
                             this.viewContainer.createEmbeddedView(this.templateRef);
                             让隐藏的视图显示出来
                             this.hasView = true;
                      } else if (condition && this.hasView) {
                            把视图容器中创建的内嵌视图删除
                            this.viewContainer.clear();
                           让显示的视图隐藏起来
                            this.hasView = false;
                      }
                }
                
      
 

angular6 开发实践基础知识汇总的更多相关文章

  1. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  2. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  3. Golang 入门系列(三)Go语言基础知识汇总

    前面已经了 Go 环境的配置和初学Go时,容易遇到的坑,大家可以请查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html ...

  4. C#基础知识汇总(不断更新中)

    ------------------------------目录---------------------------- 1.隐式类型2.匿名类型3.自动属性4.初始化器5.委托6.泛型7.泛型委托8 ...

  5. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  6. Oracle基础知识汇总一

    Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...

  7. Java开发培训基础知识解析之反射机制

    Java是老牌编程语言,是当前应用最广泛的编程语言之一.想要学习Java你就一定要掌握Java基础知识,而反射对于初学Java的人来说绝对是非常重要的知识点.什么是反射?如何理解反射机制?如何使用反射 ...

  8. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之基础知识

    前言: 在具体回顾每一个功能的实现前,还是有必要先温习一些项目涉及到的PHP.MySQL[语法基础].项目github地址:https://github.com/66Web/php_book_stor ...

  9. Spring基础知识汇总 Java开发必看

    Spring简介 Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版.Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅 ...

随机推荐

  1. 关于:无法创建链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的实例 (错误:7302)

    本人接触和使用Oracle数据库才有一个季度的时间,问题比较白,大神请无视本文. 环境: 1.数据服务器,windows2008R2,Oracle11g 2.报表服务器,windows2008R2,S ...

  2. Django数据同步过程中遇到的问题:

    1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__ve ...

  3. 解决MyEclipse启动慢,使用卡顿问题

    卡顿原因: 1.启动的服务和插件过多,导致启动和运行缓慢,电脑配置较差的直接会卡死没有响应 2.软件运行内存设置不足,导致没有足够的空间运行软件,致使软件卡顿 解决方法: windows --> ...

  4. 【教程】CRX格式插件不能离线安装?本地扩展CRX无法安装怎么办?

    http://www.cnplugins.com/zhuanti/how-to-make-crx-install.html

  5. Judy Beta Postmortem

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 与Alpha阶段相同,我们的软件要解决的Julia程序的dubug功能.问题定义得比较清楚,具体分 ...

  6. ABP-DDD学习

    有一个比较大的项目,打算使用 DDD +ABP +微服务 开发: 1.涉及到社交: 业务场景比较复杂:会多变: 2.采用前后端分离,netcore+vue; 3.部署采用K8S +docker 进行部 ...

  7. Python中的传参是传值还是传址?

    传值:在C++中,传值就是把一个参数的值给这个函数,其中的更改不会影响原来的值. 传址:即传引用,直接把这个参数的内存地址传递进去,直接去这个内存地址上进行修改. 但是这些在Python中都没有,Py ...

  8. HTML中data-* 属性

    使用 data-* 属性来嵌入自定义数据: <ul><li data-animal-type="bird">Owl</li><li dat ...

  9. 棋盘(noip2017普及组)

    题目描述 有一个m \times mm×m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的(不能是无色 ...

  10. windows10安装anaconda,配置tensorflow

    1.安装anaconda 3.5.5 默认安装,注意,把添加到path勾选上,其他默认安装(能搜到这篇文章,相信大家都有过变成经验,这些环境变量的重要性就不要窝在多说了) 2.以管理员身份,打开ana ...