1.问题描述:

点击删除后:table中的被选中设备确实被删除了,但是data-table并没有重新加载出来,

查看js代码:

先对$scope.data_table进行了destroy(),然后重新加载了设备列表:

而AngularJS对‘ngRepeatFinished’指令进行监控,一旦页面发出ngRepeatFinished指令,那么$scope.data_table就会进行渲染

而ngRepeatFinished这个指令是通过另一个指令(onFinishRenderFilters)发出的:

那么我们去页面中找到onFinishRenderFilters这个指令的发出的地方,即table中e 在entities中循环完了,就会发出on-finish-render-filters指令:

那么问题来了,页面table中的被选设备已经被删除了,data-table也已经被destroy了,那么为什么data-table没有重新渲染呢?

经过很长时间的寻找:终于发现ng-repeat中使用的不是平时所用的 e in entities 而是 ng-repeat="e in entities track by $index", 进而发现 track by的一些特性:

也就是说,在这个例子中,track by在ng-repeat中,那么table中仅仅是被删除的设备记录被重新渲染了,其他没有变得部分没有被重新渲染,也没有发出on-finish-render-filters,从而就没有

触发ngRepeatFinished指令,所以data-table没有被重新渲染出来。

AngularJs使用过程中,在ng-repeat中使用track by的更多相关文章

  1. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  2. linux文件系统初始化过程(4)---加载initrd(中)

    一.目的 上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程. initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负 ...

  3. angularJs中怎么模拟jQuery中的this?

    最近自己正在学习angularJs,在学到ng-click时,由于想获取当前点击元素的自身,开始想到了用$index来获取当前元素的索引同样能实现我想要的效果,但是在有些特殊的情况下,使用$index ...

  4. DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量

    DB数据源之SpringBoot+MyBatis踏坑过程(六)mysql中查看连接,配置连接数量 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybati ...

  5. java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

    Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...

  6. angular报错:angular.min.js:118Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq

    报错代码如下: <div ng-controller="HelloAngular"> <p>{{greeting.text}},angular</p& ...

  7. OC中如何把数组中字典的数据转换成URL?

    在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...

  8. Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)

    文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...

  9. OC中如何把字典中的数据拼接成url字符串

    在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...

随机推荐

  1. linux学习笔记30--命令at和crontab

    在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. 通过'添加任务计划'的一步步引导,则可建立一 ...

  2. HTML转义工具 [Javascript版]

    有时候需要在HTML中显示一些带有特殊字符的文本( < > & 空格) ,这时候就要用到HTML转义. 有了这个工具在博客发布HTML代码的时候就很方便了. <!DOCTYP ...

  3. @override 报错问题

    Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多. 这是jdk的问题,@Ove ...

  4. AppStore苹果应用支付开发(In App Purchase)翻译

    http://yarin.blog.51cto.com/1130898/549141 一.In App Purchase概览 Store Kit代表App和App Store之间进行通信.程序将从Ap ...

  5. elasticsearch插件三—— Marvel插件安装详解

    2016年05月21日 22:58:13 阅读数:23058 一.Marvel插件介绍 Marvel插件:在簇中从每个节点汇集数据.这个插件必须每个节点都得安装. Marvel是Elasticsear ...

  6. js autoComplate

    在实际的项目中,能用别人写好的插件实现相关功能是最好不过,为了节约时间成本,因为有的项目比较紧急,没充分时间让你自己来写,即便写了,你还要花大量时间调试兼容性.但是出于学习的目的,你可以利用闲暇时间, ...

  7. Social Network 社交网络分析

    Social Network 社交网络分析 一:什么是SNA-社交网络分析 社交网络分析的威力何在?我想几个案例来说明. 案例1:对一个毫无了解的组织(这个组织可以是一个公司,亦或是一个组织),如果能 ...

  8. 第九篇:使用 lstat 函数获取文件信息

    前言 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记.但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等.如果要获取这些信息,则使用函数 lstat 可以轻松达到这个 ...

  9. 69、ViewPagerIndicator+ViewPager实现Tab

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  10. bunoj 13124(数位dp)

    数位dp每次都给我一种繁琐的感觉.. A - Palindromic Numbers Time Limit:2000MS     Memory Limit:32768KB     64bit IO F ...