我有一个对象数组,每个对象的数据可能略有不同。我在指令上使用ng-repeat来选择要显示的正确指令。 “display”指令获取对象并以正确的格式显示数据。这一切都很有效。
现在我需要重新组织数组的顺序。当我更新数组时,“display”指令不会重新排序,只会更改数据。例如,大多数数据集都有一个“标题”字段,所以那些更新,但“显示”没有。
如何最好地刷新ng-repeat以便正确地重新排序“display”指令?
我可以发布代码,但我觉得这更像是一个概念性的问题。
HTML:
<module-builder module="{{$index}}" ng-repeat="module in build.modules track by $index"></module-builder>
模块助洗剂:
(function() {
'use strict';
angular
.module('app.email_editor')
.directive('moduleBuilder', moduleBuilder);
function moduleBuilder ($compile) {
var directive = {
link: link,
restrict: 'EA'
};
return directive;
function link(scope, element, attrs) {
var module = scope.build.modules[attrs.module];
var template = '';
switch (module.Name){
case 'moduleTypeOne':
template = "<module-type-one class='{{module.Class}}'></module-type-one>";
break;
case 'moduleTypeTwo':
template = "<module-type-two class='{{module.Class}}'></module-type-two>";
break;
default:
break;
}
element.html(template);
$compile(element.contents())(scope);
}
}
})();
BTW html5Sotable是重新订购的界面
答案 0 :(得分:0)
你在轨道中遇到问题由$ index ,在这种情况下,角度重新渲染元素仅如果$ index改变了。
因此,如果您的数组中确实存在重复的项目,则应该通过其他方式对其进行跟踪。