网站首页 > 技术文章 正文
一:自定义指令常用模板
下面是大致的说明,不是全面的,后面来具体说明一些没有提及的细节和重要的相关知识:
二:一些属性说明
【scope】
可以设置boolean或者对象,先来说说boolean,这个比较简单:
1.当设置true的时候,表示继承父scope,是一个子scope;
2.当设置false的时候,直接使用父scope。
还有一种对象设置方法,就是设置一种隔离的scope,在使用隔离scope的时候,提供了三种方法同隔离之外的地方交互,下面用一个例子来一一说明:
上面是指令的写法,下面来看看控制器里面有什么:
最后别忘了html里面的使用:
【require】
请求另外的controller,然后作为link方法的第四个参数传递进去,我们需要注意的是查找控制器的方法。
查找控制器的方法可以这样理解:使用?表示如果在当前指令中没有找到所需要的控制器,会将null作为传给link函数的第四个参数,如果添加了^前缀,指令会在上游的指令链中查找require参数所指定的控制器,他们也可以组合,比如require: "?^ngModel",如果没有前缀,指令将会在自身所提供的控制器中进行查找,如果没有找到任何控制器(或具有指定名字的指令)就抛出一个错误。
【terminal】
属性terminal:为true时,指示优先级小于当前指令的指令都不执行,仅执行到本指令。
三:视图和model之间的数据格式化
类似过滤器的功能,有时候我们希望页面显示的是数据经过某种翻译后的样子,以便于约定,不过对于数据库也许简单的序号会更有益,因此你可能会需要在link中使用下面的方法来实现这个功能:
1.ctrl.$formatters.unshift(function(input) {//model到view的数据格式化});
2.ctrl.$parsers.unshift(function(input) {//view到model的数据格式化})。
上面的$formatters和$parsers就是二个队列,视图到model和model到视图,会方便经过里面定义的方法的过滤,有点类似管道流,最后流到目的地。
别忘了设置类似require: "?ngModel"这样的语句去查找控制器。
四:视图和model数据同步问题
有时候在指令里面通过jquery修改了input的数据,不过angularjs并不会知道,这时候,你可以选择下面中的一个方法:
1.触发输入框change改变,让Angularjs发现数据改变了,从而去调用$setViewValue(value),同步数据:$("input").trigger("change");
2.直接手动触发同步value到viewValue和modelValue中的行为:ctrl.$setViewValue($scope.info)。
五:几个零碎的技巧
1.根据输入框是否合法来设置true或false:ctrl.$setValidity(errorType, boolean);//errorType表示错误类别,可以自定义
2.设置监听指定的一个model值,当然还有监听集合等方法:$scope.$watch(attrs['ngModel'], function(newValue, oldValue) {});
3.有时候在指令里面新添加的字符串需要被angularjs管理,就可以用下面的方法编译一下:$compile(newHtml)($scope)。
猜你喜欢
- 2024-10-21 Django 自定义管理命令:从入门到高级
- 2024-10-21 VUE自定义指令 自定义指令的应用场景有哪些?
- 2024-10-21 c4d自定义界面命令——把常用工具摆出来,工作效率大大提高
- 2024-10-21 Vue3.0 如何写自定义指令 vue自定义指令两种方式
- 2024-10-21 Vue学习之自定义指令 vue自定义指令和自定义组件
- 2024-10-21 权限应用-按钮权限标识利用自定义指令控制按钮
- 2024-10-21 thinkphp自定义指令 thinkphp自定义错误页面
- 2024-10-21 TCL语言学习笔记(4) -自定义命令(过程/函数)和命名空间
- 2024-10-21 vue-12 自定义指令 vue自定义指令案例
- 2024-10-21 Linux 创建自定义命令 linux创建自己的命令
你 发表评论:
欢迎- 11-18软考系统分析师知识点十六:系统实现与测试
- 11-18第16篇 软件工程(四)过程管理与测试管理
- 11-18编程|实例(分书问题)了解数据结构、算法(穷举、递归、回溯)
- 11-18算法-减治法
- 11-18笑疯了!巴基斯坦首金!没有技巧全是蛮力!解说:真远啊!笑死!
- 11-18搜索算法之深度优先、广度优先、约束条件、限界函数及相应算法
- 11-18游戏中的优化指的的是什么?
- 11-18算法-分治法
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)