Vue $ watch для массива объектов - PullRequest
1 голос
/ 03 июня 2019

Я новичок в Vue. Мы переносим код из додзё в Vue. Я пытался добавить часы в массив объектов. Мои данные, в которые я должен добавить часы, - это массив объектов, и у объектов снова могут быть массивы.

Пример данных:

    ‘ItemList’: [
    {
    ‘item’: {
    ‘term’: ‘1’,
    ‘timing’:‘A’
    ‘steps’: [{}], ( Array )
    ‘parameter’: [{}] ( Array)
    …
    …

    almost 600 values
    }
    },
    {
    ‘item’: {
    ‘term’: ‘2’,
    ‘timing’:‘B’
    ‘steps’: [{}],
    ‘parameter’: [{}]

    ....
    ....

    almost 600 values
    }
    }
    ]

В старом додзё код был такой:

    for (c = 0; c < itemList.length; c++) {
       item=itemList[c];
       var itemWatch = item.watch(function(name,oldVal,newVal) {
       }
    }

//Here the name gives what value of array is changed . I need that for future 
//logic. we can add  watch on each item.

    computed:{
      clonedItems: function(){
                         return JSON.parse(JSON.stringify(this.itemList));
                      }     
                },
                 watch:{

                    clonedItems:{
                              deep: true,
                              handler: function (val, oldVal) {

Это я попробовал, который работает нормально, но узнать, какое значение изменится, это будет сложное вычисление. Этот массив может состоять из 100 элементов, и каждый элемент имеет 600 элементов, где у нас также есть массивы.

Пожалуйста, расскажите, как лучше всего добиться такой же функциональности, как у нас.

...