2017-01-26 3 views
0

Я хочу зарегистрировать объект Vue.js с console.log(obj), но все свойства отображаются с reactiveGetter() и reactiveSetter() функциями вместо их значений.Клонирование объекта Vue.js?

Как я могу клонировать объект Vue.js, так что я получаю только значения?

я не могу использовать JSON.parse(JSON.stringify(obj)) на объект Vue.js из-за циклические ссылки (родитель, дети и т.д.)

Я попытался с помощью Vue.util.extend({}, obj), но это по-прежнему сохраняет данные-привязку внутри объекта.

Любые идеи?

+0

https://codepad.co/snippet/iNH09hM1 –

ответ

0

Вы можете перебирать свойства объекта Vue и игнорировать все свойства с именем начинается с _ или $.

Как это:

var newObject = Object.keys(app).reduce(function(previous, current) { 

    if (!current.match('^[_$]')) { 
     previous[current] = app[current] 
    } 
     return previous; 
}, {}); 

И результат с console.log(newObject):

message: "Hello Vue!" 
service: boundFn(a) 

Проверки это манящее: https://jsfiddle.net/Reeska/g5srz7br/