• 开发中遇到的angularJs的小问题


    1.在使用自定义指令后如果需要将指令内部的数据传给外层controller需要设置scope属性,此时注意,如果指令内传出的数据在某种情况下需要清空,如传出一个选中元素的数组,点击清空按钮则清空选中这样的功能,你在清空数组的时候不要直接使用=[],无效。

    原因:应该是由于外层已经有复制的同名变量引用了这个数组的地址,因此即使指令内从新将该数组指向新的地址,也不会触发垃圾回收机制来清除外层的引用

    解决方式:用arr.length=0即可。

    图:

                                         指令内层

                                                                                       外层有属性接收了这个categories数组

    2.关于input的checkbox选中的问题,如果你想要将事件放到li上,通过点击li时传checkbox的状态进去来改变这个值的true和false达到控制check的效果,不要使用ng-model绑定check

    原因:在点击checkbox时ng-model绑定的数据会先赋值在传入父元素li的ng-click事件中,而点击li则是直接传checkbox当前的状态,造成在click事件里写checkbox的状态判断时不一致,导致直接点击checkbox时总是维持一开始的状态

    解决办法:按照推荐使用ng-checked即可

    图:

                    click事件

                                 点击li就可以控制内部的input标签状态ng-checked不要换成ng-model

    3.在使用ionic插件进行弹出窗口的创建时,内部的js代码会执行编译两次(非ionic插件本身的bug)

    原因:暂时不详

    图:

  • 相关阅读:
    集群服务器登录退出出现问题
    TP框架中的Db::name 和 dB::table 以及 db('') 的区别
    TP5中orderRaw用法
    视差滚动 插件
    ThinkPad t480s 电源接口进水了
    file_put_contents failed to open stream: Permission denied in
    Mac 如何安装字体?
    ZipArchive::close(): Failure to create temporary file: Permission denied
    Wifi6 路由器推荐
    名词解释 | Enteric Nervous System | Enteric Neural Crest Cell | ENS | ENCC | 神经系统 | 神经嵴细胞
  • 原文地址:https://www.cnblogs.com/weblv/p/5609911.html
Copyright © 2020-2023  润新知