欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解Angular结构型指令模块和样式

程序员文章站 2022-01-20 06:06:09
一,结构型指令*是一个语法糖,退出相当于<...

一,结构型指令

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

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

<a>退出</a>

</ng-template>

避免了写ng-template。

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

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是两个静态工厂方法。

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

写一个forroot()

创建一个servicemodule:$ ng g m services

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

在core module中导入的时候使用

imports: [servicesmodule.forroot();]

三,风格定义

ngclass,ngstyle和[class.yourclass]

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

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

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

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

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

1、在taskhome中给app-task-list添加order

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

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

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

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

以上就是详解angular结构型指令模块和样式的详细内容,更多关于angular结构型指令模块和样式的资料请关注其它相关文章!