2016-04-15 3 views
0

Я не могу найти способ обновить элемент массива элементов.Элемент обновления в DataSet

Что я хочу сделать, это удалить элемент, прежде чем вставлять его в список, если этот элемент уже существует. То, что я не хочу делать, - это перебирать все элементы, чтобы найти ведьму, которую я должен удалить, если она есть.

Я tryied использовать Бодрствующего:

watch: { 
    list: function (list, oldList) {  
     } 
} 

, но так как я получаю старый и новый список, мне еще нужно перебирать.

Проверка документации я нашел $remove метод, который:

будет искать это значение в массиве и удалить первое вхождение.

Так что я пытался this.list.$remove(item.Id), но он не работает.

Я попытался использовать JQuery.grep(), чтобы выбрать нужный элемент, но ему нужно повторить так, это нет.

Есть ли способ в vue.js выполнить то, что я пытаюсь сделать?

EDIT

я могу выбрать правильный элемент для удаления с помощью метода $eval:

var expr = "list | filterBy " + value.Id + " in 'Id'"; 
var item = this.$eval(expr); 
this.list.$remove(item); 

Но теперь, когда у меня есть свой предмет, метод $remove, кажется, не делает его работу. Я использую это неправильно или что-то в этом роде?

+0

Я не думаю, что это возможно без повторения массива –

+0

@GuillaumeBeauvois Вы должны восстановить [этот] (http://stackoverflow.com/questions/37275633/) вопрос. Я думаю, у меня есть решение для этого. – Nasreddine

ответ

1

Не this.list.$remove(item) достаточно? Vue будет искать массив для вас и удалять правильный элемент. На самом деле это именно то, что вы делаете с помощью метода $eval.