angular指令link中操作传递进来的数据

为了解决资产数字过多造成的换行适配问题,准本写一个指令根据数字长度调整数字的字体大小
1 首先说一下指令里面的scope对象

每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的controller提供的作用域或者根作用域$rootScope),或者创建一个新的自己的作用域,angular为我们的指令scope提供了三种参数,true ,false , {},默认false

scope = false

我们可以直接使用父控制器作用域对象上的变量,函数,他们共享一个数据模型,你修改指令里的模型数据,会反映到父作用域

scope = {}

= 双向绑定前缀
@ 单项绑定前缀
& 这是一个绑定函数方法的前缀
2 link函数
主要用与写指令的dom操作,有三个参数scope,element,attrs

【主要遇到的问题】:

在link函数里面找不到传过来的 text,每次打印都undifined,这怎么办,后来通过拿到element[0]发现innerText有值,但是当你打印的时候是传递过来那个值的初始值(0),(后来请求数据做了改变),很显然angularjs指令没有检测到这个改变,拿到的是最初的值
解决办法,我们手动检测这个值的变化呀
在link函数里面写 scope.$watch('text',function(oldValue,newValue){
可以拿到newValue最新值然后判断就可以
})

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容