2016-12-09 11 views
12

У меня есть компонент со следующей хэшWatching вычислен свойства

{ 
    computed: { 
    isUserID: { 
     get: function(){ 
     return this.userId? 
     } 
    } 
} 

Должен ли я смотреть isUserID или userId для изменений? Можете ли вы посмотреть расчетные свойства?

+1

Будет полезно ответить, если вы сможете уточнить, что вы пытаетесь сделать. Здесь, когда вы получаете, вы получаете 'this.ID' при установке' this.userId', я не уверен, как это будет работать. – Saurabh

+0

@saurabh Я пытался установить свойство данных либо по параметрам маршрута, либо по компонентам «реквизит», так как я не могу делать то, что я думал о том, чтобы просто использовать вычисленное свойство и наблюдать за ним. Но то, что я действительно хотел узнать, может ли вы наблюдать за вычисленным имуществом? – Kendall

ответ

26

Да, вы можете установить watcher на computed собственности, см. fiddle.

Ниже приводится код, чтобы установить часы на вычисленной собственности:

var demo = new Vue({ 
    el: '#demo', 
    data: function(){ 
     return { 
     age: '' 
     }; 
    }, 
    computed: { 
     doubleAge: function() { 
      return 2*this.age 
     } 
    }, 
    watch: { 
     doubleAge: function (val) { 
     alert("yes, computed property changed") 
     } 
    } 
}) 
+1

Хорошо, я попробую это снова, иногда я не могу получить события вычисленного свойства, поэтому мне придется в конечном итоге использовать свойство данных, которое обычно является дубликатом вычисленного свойства. Есть ли причина, по которой вычисленное свойство не запускает событие просмотра? – Kendall

+1

@ Kendall Я не уверен, почему это произойдет, если вы можете поместить соответствующий код там, где он не работает, чем кто-то может указать на некоторые оговорки или ошибки. – Saurabh

+0

В конце концов я обработал код для компенсации. Попробует загрузить исходный код, когда я получу какой-то другой материал – Kendall

0
computed: { 
    name: { 
    get: function(){ 
     return this.name; 
    } 
    } 
}, 
watch: { 
    name: function(){ 
    console.log('changed'); 
    } 
} 

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

+0

Исправьте форматирование кода – martijnn2008

+1

Я новичок, поэтому не знаю вариантов сейчас, думаю, это выглядит лучше. –

 Смежные вопросы

  • Нет связанных вопросов^_^