问题标签 [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 - 使用 orderBy 和 track by 删除 ng-repeat 中的元素失败
这是代码
如果我删除orderBy:'-modifiedDate'
,则特定元素的删除效果很好。但是,我需要以排序方式呈现集合/数组,这就是我有 orderBy 的原因。
如果我不orderBy:'-modifiedDate'
从代码中删除 并且我在位置 7 上删除了一个随机元素,那么被删除的元素总是最后一个。
我不得不使用ng-init
,因为我在上面显示的ng-repeat
里面还有另一个ng-repeat
。我这样调用删除函数,ng-click="deleteRow(listIndex)"
angularjs - ng-repeat 使用 hashKey 默认跟踪
问题:
是否可以通过表达式定义一个 ng-repeat 轨道,如果它存在,它将使用特定属性,但如果该属性未定义,则使用默认的 $$hashKey 行为?
语境:
我有一个聊天应用程序,它显示一组具有 id 的 JSON“post”对象。通常,我会做
但是,由于我希望应用程序能够响应用户,因此当用户添加新聊天时,我会在调用 create API 之前立即将其推送到数组中。然后,如果 API 响应成功,我会更新 id,如果 API 响应不成功,我会更新“失败”字段。
这意味着如果有失败的帖子,posts
数组可能有多个帖子对象,这些帖子对象具有 id 的值。undefined
所以我希望在没有定义 id 时仍然可以使用 $$hashKey 。
javascript - DOM 通过 angular-selectize ng-repeat 和 track by 不断重建
我将 AngularJS 与angular-selectize模块一起使用。
要使用我需要的元素填充页面,我使用如下内容:
索引.html
控制器.js
无论我使用track by $index
,还是根本不使用,每次我用从服务器获取的数据更新数组时track by select.name
,所有元素都会完全重绘,即使更新后数组内容相同。<selectize></selectize>
selects_data
我还没有找到任何方法来自己解决它。当我在内部或其他元素中使用它时,我不明白为什么track by
对同样的事情有帮助。div
如果有人可以帮助解决这个问题,我会非常高兴!
angularjs - 带有 track by 的 Angular ng-options 创建未知选项元素
我的目标是生成一个选择列表,其中的选项值设置为我的对象属性之一。将 track by binding 选项添加到 ng-options 指令时,会创建一个未知的选项元素,并且它是唯一显示被选中的选项。这种行为在 angular v1.3 中(这是我正在使用的版本)。在 v1.4 中,它仍然会创建未知项目,但会更改显示以显示不同的选定项目。在这两种情况下,它都不会将下拉菜单的初始状态设置为与模型值相对应。
ng-options Track By example v1.3
在 v1.4 中,它仍然没有设置初始状态,但是在选择一个新值时它会改变显示。我觉得奇怪的是这不起作用并且这不是问题。
如果您想知道,我们想要这个,以便选项值是我们的测试自动化可以键入的已知代码,而我们唯一希望模型值是代码。似乎是一个相当标准的事情。
angularjs - 如何通过深度克隆问题解决角度 ng-options 跟踪?
ng-options="branch as branch.name for branch in ordersItemClientInfo.branches track by branch.id"
在我的情况下,“分支”是一个对象数组,每个对象都有指向如此深的对象(地图 geoObject)的字段引用。Angular 试图复制那个对象但失败了!
来自 angular.js:
我不需要副本,我需要选择原始对象。我怎样才能做到?
javascript - 一般角度 ng-repeat 和跟踪 $index
只是一个关于在 ng-repeat 中使用 track by $index 的一般性问题,我在文档中找不到解决方案......
我有一个<div ng-repeat="concert in concerts track by $index">{{concert}}</div>
,在它下面,我有一个数组,动态填充音乐会的开始时间,如下所示<p>{{startTime[$index]}}</p>
。有些音乐会没有有效的开始时间,有没有办法确定是否有 startTime,[$index]
如果没有,定义代替它的文本?
我知道这是一种开放式的方法,我可以使用一个函数来比较concerts
数组和startTimes
数组的长度,并用数据填充剩余的字段startTimes
,但我希望可能有更简单的方法?最佳实践?
谢谢你的建议!
javascript - Angular select and ng-options
I have this angular select:
My $scope.status_codes
is like this:
My $scope.obj.status
is updated to "300" or "100" or whatever as I change my select, but the select display is always blank. So, the model updates to the selected value of the select input but the input does not show the currently selected value, it shows a blank item.
If i change ng-options to be ng-options='status as (status.code ...'
it works, but I only want status.code in my model, not the whole status array. What gives?
I have {{obj | json }}
in my HTML and it reads:
angularjs - 角度材料 md-select 使用 track by 但仍然获得 $$hashKey
我试图摆脱 angular 添加到模型值的 $$hashKey 值。根据大多数实施跟踪的消息来源,应该可以解决这个问题,但我做错了。
vm.productTypes 是 id 属性为 GUID 的任何对象数组。
生成的模型值...
HTML 代码:
我哪里错了?
更新:
似乎 name 属性导致了这种奇怪的行为。漏洞? http://codepen.io/anon/pen/LNpMYJ
angular - 如何在 ngFor angular 2 内部使用 track
尝试了所有我能猜到的语法都不能让它工作!
对我有用的唯一方法是
在控制器类中创建方法
识别(索引,发布:发布){ 返回 post.id }
和
这是唯一的方法吗?我不能只为 trackBy 指定一个属性名称吗?
angularjs - 在同一个 ng-repeat 中使用过滤器和分页时在哪里添加'track by $index'
我有我的 ng-repeat 和过滤器,然后我添加了 bootstrap-ui 分页,一切正常
要添加字段编辑,我需要使用'track by $index',但我找不到将其添加到我的 ng-repeat 的正确方法,这是我的 HTML 视图:
我的 PageSize 限制设置为 5,所以我的索引在每个页面中从 1 重新开始到 5,因为我没有在我的 ng-repeat 中按 $index 添加轨道所以如果我编辑第 2 行,它将编辑每个第 2 行每一页,
在同一个 ng-repeat 中使用过滤器和分页时如何添加'track by $index'的任何想法