我有一个固定尺寸卡的仪表板(4)。无论何时我将任何一张卡转移到另一个位置,都会在仪表板中创建同一张卡的复制品。 现在我总共有5张卡片。如果我这样做,那么它将再次创建重复。我的目标只是将卡片移动到另一个位置而不重复。
在 html文件
中 <div class="card"
ng-repeat="card in dashCtrl.cards track by $index"
dnd-draggable="card"
dnd-type="'card'"
dnd-effect-allowed="move"
dnd-moved="dashCtrl.updateCardPosition($index)"
dnd-dynamic-placeholder-size="true" ng-include="'/partials/dashboard/'+card.template+'.html'">
</div>
这里dashCtrl == dashboard_controller
信息中心控制器中的
function updateCardPosition($index) {
// if(vm.cards.length!=4)validEntry();
// vm.cards.splice($index, 1);
console.log('dsdsdsdsds',$index);
vm.cards = _.uniqBy(vm.cards,'template');
vm.cards.forEach((ele)=>{
console.log('xxxxxxxxxxxxxx',ele);
});
// console.log("cards",vm.cards.length);
// console.log('index',$index);
Store.set('cards', JSON.stringify(vm.cards));
}
这里 vm 是控制器的对象(这个),它有很多方法。 所以 vm.cards 是卡的数组。我使用商店(用于本地存储) 存储修改后的数组(就位置而言)。
vm.cards的结构
vm.cards = [
{template: 'agenda-card'},
{template: 'budget-card'},
{template: 'collaborate-card'},
{template: 'todo-card'}
];
我检查了谷歌的所有内容,但我无法找到解决方案。我想重复问题可能来自 dnd-draggable 。我只是在猜测。 那么如何解决重复问题?
答案 0 :(得分:0)
从track by $index
删除ng-repeat="card in dashCtrl.cards track by $index"