• angularJS常见问题汇总


    问题描述
    解决方案
    当你简单的动态给页面插入html时,
    此时html带有angular的语法不会执行的。
    var uploadInfo = '上传成功!<a ng-click="quitTo('customer')">点击</a>跳转到客户列表界面';
    angular.element('.modal-body').append(uploadInfo);
    此时ng-click不会执行
    将uploadInfo通过$compile进行处理,
    var ele = $compile(uploadInfo)($scope);
    angular.element('.modal-body').append(ele);
    任何指令的生效都需要compile,这一步在app启动的时候angular先帮你做了,
    但你插入的html是没有经过compile这个步骤的,所以你手动compile下即可。
    使用ng-repeat出错:Error: [ngRepeat:dupes]
    Error: [ngRepeat:dupes]这个出错提示具体意思是指数组中有2个以上的相同数字。
    ngRepeat不允许collection中存在两个相同Id的对象

    对于数字对象来说,它的id就是它自身的值,因此,数组中是不允许存在两个相同的数字的。为了规避这个错误,需要定义自己的track by表达式。

    例如:item in items track by item.id 或者 item in items track by fnCustomId(item)。嫌麻烦的话,直接拿循环的索引变量$index来用item in items track by $index

    使用第三方插件或者原生的js修改angular中的model或者view的值时,相应的model或者view的值不会变化,也就是angular的双向数据绑定失效
    angular有自己的一个上下文,所有与angular有关的代码执行(如双向数据绑定)都在这个上下文中进行,因 此如果你用第三方插件或者原生的js进行操作时,此时代码是在javascript的上下文中执行,angular无法知道你是否修改model或者 view的值,自然也就无法进行双向数据绑定。解决方案时在操作之后执行$scope.$apply()或者将操作的代码放 在$scope.$apply(function(){//操作的代码...})
  • 相关阅读:
    最短路径算法
    二叉树遍历的应用
    二叉搜索树
    二叉树的遍历
    Linux 用户和用户组管理-用户信息文件
    Linux脚本安装包
    Linux 源码包安装过程
    RPM包管理-yum在线管理
    Linux RPM命令查询
    Linux RPM管理命令
  • 原文地址:https://www.cnblogs.com/koleyang/p/4939825.html
Copyright © 2020-2023  润新知