0

Скажет, у меня есть объект данных, как так:Polymer 1,0 подстановочные связывает с вложенным Подствойством в массиве

const o = [ 
    {name: "A", v: 1, other: 0}, 
    {name: "B", v: 7, other: 0}, 
    {name: "C", v: 8, other: 0}, 
    {name: "D", v: 1, other: 1}, 
] 

Я хочу, чтобы иметь возможность определить вложенную наблюдателя, как:

_sumOfVs(o.*.v) 

Этом так как наблюдатель обновляется только тогда, когда ключ v в объектах редактируется, а не повторно вычисляется при обновлении name или other. В настоящее время лучшее, что я могу сделать, это определить, как наблюдатель _sumsOfVs(o.*):

_sumsOfVs = obj => obj.base.reduce((p,c) => p+c.v, 0) 

Спасибо!

ответ

1

Это не похоже, что есть способ наблюдать только конкретные субсвойства от подстановочного (o.*.v), но вы можете проверить путь реверсивной записи, то в подстановочном наблюдателе (o.*), отфильтровывать нежелательные пути так, что наблюдатель если запись изменений не применяется к .v.

_sumOfVs: function(changeRecord) { 
    if (changeRecord.path.endsWith('.v')) { 
    const sum = changeRecord.base.reduce((p,c) => p + Number(c.v), 0); 
    console.log('sum', sum); 
    } 
} 

codepen