问题
我对 Angular 数组/对象上的 $$hashkey
的属性很感兴趣。
- 每次重新加载时,每个生成的散列键是否相同? 页;快速测试告诉我是的,但我有点假设 不会吗?
- 如果您更新/添加到现有数组,旧哈希键的 保持一致?
- 如果以上为真,有没有一种方法可以使用 哈希键? - 因为我可以自己滚动,但在我重新创建轮子之前我想我会问。
示例:
View 包括:
- 表单数据(示例有 1 个表单)
- 元素数据(示例有 2 个元素)
- 元素选项数据(例如每个元素有 2 个选项)
获取方法:
angular.get($$hashkey);
然后您将传递元素的哈希键,它会在完整数组中返回对该数组的引用。
最后的数据是:
{
form_id: 1
form_desc: 'xxx',
form_name: 'name 1',
Elements: [
{
element_id: 1,
element_name: 'element1',
default_value: null,
disabled: "0",
element_type: "image",
ElementOptions: [
{
show: false,
sort_order: 0,
value: "ar",
},
{
show: true,
sort_order: 1,
value: "rw",
}
],
},
{
element_id: 2,
element_name: 'element2',
default_value: null,
disabled: "0",
element_type: "image",
ElementOptions: [
{
show: false,
sort_order: 0,
value: "ar",
},
{
show: true,
sort_order: 1,
value: "rw",
}
],
}
]
}
最佳答案
$$hashkeys 只会针对函数和对象进行计算,因此如果您希望跟踪不是这些类型之一的任何内容,那么您就会受到限制。
$$Hashkeys 看起来像... (函数||对象):N ...
其中 N 只是一个正在调整的增量值 + 1 为每个计算的 $$HashKey。 因此,在许多情况下,这可能是跨页面加载的相同值。但是异步加载数据,在页面初始化查询多个数据源时会造成差异,返回顺序无法保证。在这种情况下,您必须整理所有异步数据,然后按特定顺序将该数据分配给您的范围,以确保 $$hashkeys 一致。
在链接到我们的 DOM 的数组中移动项目(通过 ng-repeat)不会更改项目 $$hashkey。将其删除并重新添加即可。
我不会将 $$Hashkey 用于我自己的内部管理,因为它是 AngularJS 的内部。
关于javascript - AngularJS:$$hashkey 是可靠的 key 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26381247/