当前位置: 首页 > 面试题库 >

AngularJS中的“跟踪依据”是什么,它是如何工作的?

罗建弼
2023-03-14
问题内容

我不太了解其track by工作原理和作用。
我的主要目标是将它与配合使用以ng-repeat提高精度。


问题答案:

使用track by要跟踪字符串和重复值

通常ng-repeat按项目本身跟踪每个项目。对于给定的阵列objs = [ 'one', 'one', 2, 'five', 'string', 'foo']ng-repeat试图跟踪由每个变化objng-repeat="obj in objs"。问题是我们有重复的值,而角度将引发错误。解决该问题的一种方法是通过其他方式对对象进行角度跟踪。对于字符串,这track by $index是一个很好的解决方案,因为您实际上没有其他跟踪字符串的方法。

track by 并触发摘要和输入焦点

您暗示您对角度有些陌生。当angular对每个监视属性进行详尽检查以反映相应视图的任何变化时,就会发生摘要循环。通常在摘要周期中,您的代码会修改其他受监视的属性,因此需要再次执行该过程,直到角度检测到没有更多变化为止。

例如:您单击一个按钮通过来更新模型ng- click,然后执行一些操作(我的意思是,您在回调中编写的要在用户单击时执行的操作),然后执行角度触发摘要循环以刷新视图。我不太清楚地解释这一点,因此,如果这不能使您澄清,则应进一步调查。

回到track by。我们来看一个例子:

  1. 调用服务以返回对象数组
  2. 更新数组中的对象并保存对象
  3. 保存服务后,根据API返回的内容,您可以:
    1. 替换整个对象或
    2. 更新现有对象的值
  4. 反映ng-repeat用户界面的变化

您如何跟踪此对象将确定UI如何反映更改。

我经历过的最烦人的UX之一就是这个。假设您有一个对象表,每个单元格都有一个输入,您想在其中在线编辑这些对象的属性。我想更改值,然后on- blur保存该对象,同时可能要等待响应,然后移动到下一个单元格进行编辑。所以这是一个自动保存类型的东西。根据track by响应的设置方式,当响应被写回到对象数组中时,您可能会失去当前焦点(例如,当前正在编辑的字段)。



 类似资料:
  • 为了减少内核或跨进程内存泄漏(Spectre攻击),Linux内核1将使用一个新选项编译,引入到,以便通过所谓的retpoline执行间接调用。 这似乎是一个新发明的术语,因为谷歌搜索只是最近才使用(通常都是在2018年)。 1但是,它不是Linux特有的--类似或相同的构造似乎被用作其他操作系统缓解策略的一部分。

  • 我刚刚开始在Haskell中编程,我遇到了以下定义:

  • 问题内容: 我不明白杰克逊的@JsonView( Views.MyClass.class )是什么。我知道我可以用这种方式注释POJO的字段和方法, 以过滤未 注释的字段和方法,以免它们被JSON序列化。但是,什么是Views.Myclass类?它是Jackson库的模板类吗? 为什么在Views类中可以有很多类?例如这样: 为什么需要它,它如何工作? 问题答案: 用于根据序列化的上下文过滤字段。

  • 伙计们,最近我决定回到PHP,做一些比简单的登录页面更复杂的事情。3年来,我一直在Java /JavaEE编程,对Java应用程序的体系结构有很好的理解。基本上,一个虚拟机(一个简单的操作系统进程)运行被称为字节码的编译代码。一个简单的Javaweb服务器基本上是一个java应用程序,它监听提供给Http请求的TCP端口,并相应地做出响应,当然它更复杂但这是它最初的工作。 现在,PHP怎么样?它是

  • 问题内容: 我知道该函数的基数是将字符串转换为基数的基础。不应该将11的基数10与基数/基数16转换成a 而不是? 以下代码根据教科书打印17: 问题答案: 使用基数执行操作时,以11为底的16将被解析为17,这是一个简单的值。然后将其打印为基数10。 你要: 这将采用十进制值11(此刻没有底数,就像有“十一”个西瓜(比一个人的手指数多一个)),并用基数16进行打印,结果为。 当我们采用一个值时,

  • 我搜索过,似乎这被称为列表理解,但它是如何工作的?