返回顶部
首页 > 资讯 > 精选 >Angular结构型指令模块和样式的示例分析
  • 473
分享到

Angular结构型指令模块和样式的示例分析

2023-06-15 05:06:17 473人浏览 独家记忆
摘要

这篇文章主要介绍了angular结构型指令模块和样式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一,结构型指令*是一个语法糖,<a *ngIf="

这篇文章主要介绍了angular结构型指令模块和样式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一,结构型指令

*是一个语法糖,<a *ngIf="user.login">退出</a>相当于

<ng-template [ngIf]="user.login">

<a>退出</a>

</ng-template>

避免了写ng-template。

<ng-template [ngIf]="item.reminder">      <mat-icon >        alarm      </mat-icon>    </ng-template>        <!-- <mat-icon *ngIf="item.reminder">      alarm    </mat-icon> -->

结构型指令为什么能改变结构?

ngIf源码

Angular结构型指令模块和样式的示例分析

set方法标记为@Input,如果条件为真而且不含view的话,把内部hasView标识位置为true然后通过viewContainer根据template创建一个子view。

条件不为真就用视图容器清空所含内容。

viewContainerRef:容器,指令所在的视图的容器

二,模块Module

什么是模块?独立功能的文件集合,用来组织文件。

模块元数据

entryComponents:进入模块就要立刻加载的(比如对话框),而不是调用的时候加载。

exports:模块内部的想要让大家公用,一定要export出来。

forRoot()是什么?

imports: [RouterModule.forRoot(routes)],

imports: [RouterModule.forChild(route)];

其实forRoot和forChild是两个静态工厂方法。

constructor(guard: any, router: Router);        static forRoot(routes: Routes, config?: Extraoptions): ModuleWithProviders<RouterModule>;        static forChild(routes: Routes): ModuleWithProviders<RouterModule>;}

元数据根据不同情况会变化,元数据没办法动态指定,不写元数据,直接构造一个静态的工程方法,返回一个Module。

写一个forRoot()

创建一个serviceModule:$ ng g m services

import { NgModule } from '@angular/core';import { CommonModule } from '@angular/common';@NgModule({  declarations: [],  imports: [    CommonModule  ]})export class ServicesModule { }

ServiceModule里面的元数据不要了。用一个静态方法forRoot返回。

import { NgModule, ModuleWithProviders } from '@angular/core';import { CommonModule } from '@angular/common';@NgModule()export class ServicesModule {   static forRoot(): ModuleWithProviders{    return {      ngModule: ServicesModule,      providers:[]    }  }}

在core Module中导入的时候使用

imports: [ServicesModule.forRoot();]

三,风格定义

nGClass,ngStyle和[class.yourclass]

ngClass:用于条件动态指定样式类,适合对样式做大量更改的情况。预先定义好class。

<mat-list-item class="container" [@item]="widerPriority" [ngClass]="{  'priority-nORMal':item.priority===3,  'priority-important':item.priority===2,  'priority-emergency':item.priority===1}"

ngStyle:用于条件动态指定样式,适合少量更改的情况。比如下面例子中[ngStyle]="{'order':list.order}"。key是一个字符串

[class.yourclass] :[class.yourclass] = "condition"直接对应一个条件。这个condition满足适合应用这个class。等价于ngClass的写法,相当于是ngClass的变体,简写。

<div class="content" mat-line [class.completed]="item.completed">    <span [matTooltip]="item.desc">{{item.desc}}</span></div>

使用ngStyle在拖拽的时候调整顺序

原理就是动态指定flex容器样式的order为list模型对象里的order。

在taskHome中给app-task-list添加order

list-container是一个flex容器,它的排列顺序是按照order去排序的。

<app-task-list *ngFor="let list of lists"   class="list-container"  app-droppable="true"  [dropTags]="['task-item','task-list']"  [dragEnterClass]=" 'drag-enter' "  [app-draggable]="true"  [dragTag]=" 'task-list' "  [draggedClass]=" 'drag-start' "  [dragData]="list"  (dropped)="handleMove($event,list)"  [ngStyle]="{'order': list.order}"  >

list数据结构里需要有order,所以增加order属性

lists = [    {      id: 1,      name: "待办",      order: 1,      tasks: [        {          id: 1,          desc: "任务一: 去星巴克买咖啡",          completed: true,          priority: 3,          owner: {            id: 1,            name: "张三",            avatar: "avatars:svg-11"          },          dueDate: new Date(),          reminder: new Date()        },        {          id: 2,          desc: "任务一: 完成老板布置的PPT作业",          completed: false,          priority: 2,          owner: {            id: 2,            name: "李四",            avatar: "avatars:svg-12"          },          dueDate: new Date()        }      ]    },    {      id: 2,      name: "进行中",      order:2,      tasks: [        {          id: 1,          desc: "任务三: 项目代码评审",          completed: false,          priority: 1,          owner: {            id: 1,            name: "王五",            avatar: "avatars:svg-13"          },          dueDate: new Date()        },        {          id: 2,          desc: "任务一: 制定项目计划",          completed: false,          priority: 2,          owner: {            id: 2,            name: "李四",            avatar: "avatars:svg-12"          },          dueDate: new Date()        }      ]    }  ];

在list拖拽换顺序的时候,改变order

交换两个srcList和目标list的顺序order

handleMove(srcData,targetList){    switch (srcData.tag) {      case 'task-item':        console.log('handling item');        break;      case 'task-list':        console.log('handling list');        const srcList = srcData.data;        const tempOrder = srcList.order;        srcList.order = targetList.order;        targetList.order = tempOrder;      default:        break;    }  }

感谢你能够认真阅读完这篇文章,希望小编分享的“Angular结构型指令模块和样式的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Angular结构型指令模块和样式的示例分析

本文链接: https://lsjlt.com/news/277578.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Angular结构型指令模块和样式的示例分析
    这篇文章主要介绍了Angular结构型指令模块和样式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一,结构型指令*是一个语法糖,<a *ngIf="...
    99+
    2023-06-15
  • Angular中结构型指令、模块和样式的示例分析
    这篇文章给大家分享的是有关Angular中结构型指令、模块和样式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一,结构型指令*是一个语法糖,<a *ngIf="user.login&qu...
    99+
    2023-06-06
  • 详解Angular结构型指令模块和样式
    目录一,结构型指令二,模块Module写一个forRoot()三,风格定义使用ngStyle在拖拽的时候调整顺序一,结构型指令 *是一个语法糖,<a *ngIf="user.l...
    99+
    2024-04-02
  • Angular2之结构型指令的示例分析
    这篇文章主要介绍了Angular2之结构型指令的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular 有一个强力的模板引擎,...
    99+
    2024-04-02
  • Python中结构型组合模式的示例分析
    这篇文章将为大家详细讲解有关Python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、组合模式组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对...
    99+
    2023-06-29
  • Angular中模块和懒加载的示例分析
    这篇文章主要介绍Angular中模块和懒加载的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、Angular 内置模块二、Angular 自定义模块当我们项目比较小的时候可以不用自定义模块。但是当我们项目非...
    99+
    2023-06-06
  • Angular根模块与特性模块的示例分析
    这篇文章主要介绍Angular根模块与特性模块的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前提是安装了 Angular cli,以下的大部分文件创建都是依赖于cli提供的指令Angular中的特性模板和根...
    99+
    2023-06-14
  • angular/material2中dialog模块的示例分析
    这篇文章主要介绍angular/material2中dialog模块的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用方法引入弹窗模块自己准备作为模板的弹窗内容组件在需要使...
    99+
    2024-04-02
  • js设计模式之结构型享元模式的示例分析
    小编给大家分享一下js设计模式之结构型享元模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运用共享技术有效地支持大量...
    99+
    2024-04-02
  • CentOS指令语法结构的示例分析
    小编给大家分享一下CentOS指令语法结构的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧![tyang3@localhost Desktop]$ command [-options] [arguments]&nbs...
    99+
    2023-06-10
  • angular指令中preLink和postLink函数的示例分析
    这篇文章将为大家详细讲解有关angular指令中preLink和postLink函数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。指令模板选项有complie和link两个字段,两者之间存在如下...
    99+
    2023-06-15
  • Angular中的结构指令模式及使用详解
    目录你将学到什么Angular 结构指令是什么?Angular 结构指令是怎么工作的?结构指令的例子怎么使用 *ngIf 指令怎么使用 *ngFor 指令怎么使用 *ngSwitch...
    99+
    2024-04-02
  • angular-ngSanitize模块-$sanitize服务的示例分析
    这篇文章主要为大家展示了“angular-ngSanitize模块-$sanitize服务的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angular...
    99+
    2024-04-02
  • 浅析Angular中的自定义结构型/属性型指令
    Angular指令分为三种,组件(带模板指令)、结构型指令(改变宿主文档结构)、属性型指令(改变宿主行为),下面主要介绍自定义结构型指令和自定义属性型指令。一、自定义结构型指令一个元素上只能放一个结构型指令,结构型指令的书写形式为*指令名,...
    99+
    2023-05-14
    Angular
  • angular中自定义指令的示例分析
    这篇文章将为大家详细讲解有关angular中自定义指令的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。自定义属性的四种类别分为: 元素E,属性A,注释M,类C ,...
    99+
    2024-04-02
  • JavaScript模块模式的示例分析
    这篇文章主要介绍了JavaScript模块模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:在JS中没有Class的概念...
    99+
    2024-04-02
  • angular2模块和共享模块的示例分析
    这篇文章主要介绍angular2模块和共享模块的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建模块,用到了共享模块PostSharedModule,共享模块里面包含了2个...
    99+
    2024-04-02
  • Python中os模块和shutil模块的示例分析
    这篇文章将为大家详细讲解有关Python中os模块和shutil模块的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-06
  • python中OS模块和time模块的示例分析
    这篇文章将为大家详细讲解有关python中OS模块和time模块的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、OS模块概述Python OS模块包含普遍的操作系统功能。如果你希望你的程序能够...
    99+
    2023-06-15
  • Java原型模式的示例分析
    这篇文章主要介绍了Java原型模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.思考问题现在有一只羊 tom,姓名为: tom,年龄为:1,颜色为:白色,请编写...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作