问题标签 [angularjs-track-by]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - $index 的 ng-repeat 跟踪不适用于分页
我正在使用 ng-repeat + Filter + Pagination(ui-bootstrap)
1- ng-repeat + 过滤器工作正常:
2- ng-repeat + filter + pagination 也可以正常工作:
3-问题是当我结合 ng-repeat + Filter + Pagination + track by $index
我的索引值在每页中从 0 重新开始到 4
关于“track by $index”正确顺序的任何想法!我应该把它放在哪里?
angularjs - AngularJS ngOptions track by 不会将整个对象设置为 ngModel
这是我的 json 对象:
我给选择为:
Now when an option is chosen i want another select which iterates upon ngModel
of previous select. 下一个看起来像:
当我手动选择选项时它工作正常但是当它们是$scope.dashboard.type.name = 'qwe'
我的脚本中的dashboard.type(例如:)中的值时,它用于track by
选择选项并将其保存在dashboard.type
,而不是保存整个对象它只是保存使用的值在track by
选项中。
仪表板的值。类型:
- 当我手动选择选项时:
{"name":"qwe","field":["a","b","c","d","f"],"id":3}
- 当使用 track by 时:
{"name":"qwe"}
注意:我不能使用track by item
. 它必须是对象的属性item
。它可以是name
或id
。
这是一个plnkr。
编辑 :
正如许多人所指出的,我想澄清一下,我不能将对象初始化为todos
列表的任何值。这是因为dashboard.type.name
每次值都会不同,并且todos
列表的对象数量从 10 到 100 不等。现在我必须迭代列表todos
检查是否todos[index].name==someName
并分配相关对象。我正在积极尝试避免这种解决方案(因为必须有更好的方法)。
注意: 我也尝试使用ng-change
并将实际对象分配给dashboard.type.name
但仅在手动选择选项时才有效,这似乎已经正常工作。使用时不分配对象track by
。
重要: $scope.dashboard.type.name = 'qwe'
只是一个例子。的值$scope.dashboard.type.name
可能会在每次加载页面时发生变化。
PS:我也应该早点提到这个。对不起,我的错!
javascript - 在嵌套的 ng-repeat 中推送到数组
在上面的示例中,您可以看到 {{form}} 的输出,我需要将mil in milestone_subindicator
要推送的值放入 form 中的里程碑数组中。我不知道我该如何实现?
帮助将不胜感激:)
javascript - AngularJS 中的“track by”是什么,它是如何工作的?
我真的不明白它是如何track by
工作的以及它做了什么。
我的主要目标是使用它ng-repeat
来增加一些精度。
angularjs - 角度选择 'track by' 重置选择
我正在努力让“选择”与 Angular 选择元素的“track by”一起工作。我有以下选择:
用这个js:
当我摆脱“按键跟踪”时,上面的 js 起作用 - 初始选择被预设。使用“按键跟踪”,预选是空白的。我需要“按键跟踪”来获取选定的值,这是迄今为止唯一有效的方法。到目前为止,我已经尝试过以下组合,但没有成功:
我将非常感谢这里的一些帮助,让它发挥作用。谢谢你。
javascript - 当使用 $index 跟踪时,ng-init 没有第二次调用
html:
控制器:
ng-init
tr 初始化时第一次调用的函数。如果我单击更改按钮行集合被更改并且它不会ng-init
再次调用。$index
ng-init
如果我通过两次调用来删除轨道。当我使用 track by$index
它时,它只被调用了一次。为什么会这样?关于这个的任何想法。
angularjs - 如何重置 AngularJS 中的选择列表并跟踪?
我有一个选择列表。
我重置列表
什么都没发生。AngularJS 1.5.8
angular - ngFor trackBy 仍然重新渲染 DOM?
我在我的 ngFor 中激活了 trackBy 并确认它已被调用并且正在工作,但我仍然注意到 DOM 在我的浏览器中重新呈现,这导致行闪烁。这里发生了什么?在 Angular1 中,我可以在我的浏览器/chrome 调试器中看到,当使用 item.id 跟踪并且没有发生闪烁时,DOM 没有更新/替换,为什么在 angular2 中不是这种情况。我的代码中是否存在一些错误,或者是否发生了一些我不知道实际上做了好事的事情?
编辑 我跟踪错误在我的 API 服务中的 observable 中导致了这个,但仍然不知道为什么。
解决方案
解决了使用相同的可观察 this.items 而不是每次重新加载新数据时都用新的替换它。
angularjs - Angular v1.4重复一个div而不重新渲染已经渲染的项目
我编写了代码来重复一个图像数组和一个加载更多按钮来 ajax 请求并在该数组中推送响应图像。但是每次有新的响应出现时,整个图像都会重新洗牌。
在我的控制器代码中:
每次服务器发送三个图像。以前我没有track by $index
从我添加的这个 SO answartrack by $index
中使用,但没有运气。
我认为 angular 正在重新渲染整个数组。如果是这样,我怎样才能停止这种重新渲染?