如何使用自定义指令封装翻页

news/2024/5/17 16:38:18

大家好,我是IT修真院武汉分院第12期学员,一枚正直善良的web程序员。

今天给大家分享一下,修真院官网JS-9任务中如何使用自定义指令封装翻页插件

一、背景介绍
对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能。 例如,一些原生的指令如 ng-disabled , ng-if ,ng-repeat ,ng-click 等。ng-click可以让一个元素能够监听click事件,并在接收到事件的时候执行AngularJS表达式。正是指令使得AngularJS这个框架变得强大,并且在AngularJs我们可以自己通过directive来创造新的指令。
二、知识剖析
关于指令,因为我们是有直接讲指令的小课堂的,所以这里就简单说一下。
angular指令本质上就是AngularJs扩展具有自定义功能的html元素的途径。
内置指令,打包在AngularJs内部的指令,所有内部指令的命名空间 都使用ng作为前缀,所以在写自定义指令的时候,避免用ng作为指令命名的前缀。
创建指令的方式有四种,在指令里用 restrict属性控制:
E:元素
A:属性
C:css类
M:注释
向指令中传递数据,用template属性
directive 在使用隔离 scope 的时候,提供了三种方法同隔离之外的地方交互:

@ 绑定一个局部 scope 属性到当前 dom 节点的属性值。结果总是一个字符串,因为 dom 属性是字符串。
= 通过 directive 的 attr 属性的值在局部 scope 的属性和父 scope 属性名之间建立双向绑定。
& 提供一种方式执行一个表达式在父 scope 的上下文中。如果没有指定 attr 名称,则属性名称为相同的本地名称。(其实说白了,就是可以使用在父scope中定义的函数。)
replace:是否用模板替换当前元素。

true : 将指令标签替换成temple中定义的内容,页面上不会再有标签;
false :则append(追加)在当前元素上,即模板的内容包在标签内部。默认false。
三、常见问题
怎么将分页封装成指令?

四、解决方案
看demo

五、编码实战
六、拓展思考
分页功能还可以怎么做?

七、更多讨论
Q1:还可以用directive自定义指令封装哪些插件

A1:比如说封装上传插件、轮播图

Q2:directive自定义指令中的scope作用和注意点

A2:创建一个作用域,用于传递数据

Q3:指令中controller跟link的区别?

A3:这两个都可以获取到作用域,元素,属性等引用,也都会执行一次。那当我们每次想要扩展个自定义指令时,应该用哪个?

控制器可以暴露一个API,而link可以通过require与其他的指令控制器交互
所以如果要开放出一个API给其他指令用就写在controller中,否则写在link中。简单来说,优先使用link。

八、参考文献
参考一: AngularJS权威教程

参考二: Angular简易分页设计

参考三: angular 自定义指令详解 Directive 如何使用自定义指令封装翻页


http://www.niftyadmin.cn/n/3752799.html

相关文章

python 逗号分隔符如何快速识别位数_关于python:如果字符串中有逗号作为千位分隔符,如何将字符串转换为数字?...

我有一个字符串,表示一个使用逗号分隔数千的数字。 如何将其转换为python中的数字?>>> int("1,000,000")生成ValueError。在我尝试转换它之前,我可以用空字符串替换逗号,但不知何故感觉不对。 有没有更好的办法…

关键词之间用分号_论文关键词最少几个

关键词是论文的构成部分,通常位于摘要下方,因此关键词也是非常醒目的一部分,所以关键词的写作很重要,关键词简单来说是对文章核心内容和词语的提炼,读者通过关键词就能了解文章的主要内容,那么论文关键词最…

matlab中sort_Matlab排序的使用及其在弱光图像上的妙用

​ 大家都知道,程序中运用大量的循环往往会导致运行速度降低,为了加快程序运算速度,往往是采用并行运算的方法,本质是是属于使用空间(内存)换取时间。而有些时候,使用排序也可以加快运行速度。碰…

mysql数据库自定义函数格式_MySQL数据库创建自定义函数模板分享

摘要:下文讲述MySQL数据库中创建自定义函数的方法分享,如下所示:下文通过举例的方式讲述MySQL创建自定义函数的方法---例1:定义一个无参数的自定义函数 fn_maomaodrop function if exists fn_maomao; ---如果函数存在,则删除此自定…

以OpenGL/ES视角介绍gfx-hal(Vulkan) Shader/Program接口使用

文档列表见:Rust 移动端跨平台复杂图形渲染项目开发系列总结(目录) 背景: The right way to tackle this in Vulkan is to use resource descriptors. A descriptor is a way for shaders to freely access resources like buffer…

mysql analyze_mysql的analyze,check,checksum,optimize,explain

ANALYZE TABLE用来分析和存储表的关键字的分布,使得系统获得准确的统计信息,影响 SQL 的执行计划的生成。对于数据基本没有发生变化的表,是不需要经常进行表分析的。但是如果表的数据量变化很明显,用户感觉实际的执行计划和预期的…

go 链接mysql当地时间_Golang, MySQL连接不设置时区的问题

Golang, MySQL连接不设置时区的问题发布时间:2020-06-25 08:11:08来源:51CTO阅读:1319作者:EDELWEISS_21gpackage mainimport ("fmt""github.com/go-xorm/xorm"_ "github.com/jinzhu/gorm/dialects/mysq…

无向图最短路径问题

题目&#xff1a;无向图G有N个结点(1<N<1000)及一些边&#xff0c;每一条边上带有正的权重值。 找到结点1到结点N的最短路径&#xff0c;或者输出不存在这样的路径。 解决思路&#xff1a;动态规划 1、首先使用邻接矩阵存储无向图 2、将找到结点1到节点N的最短路径分解成…