itsfrank / vue-typescript

Typescript decorators to make vue feel more typescripty
MIT License
357 stars 25 forks source link

how to set cache to false for computed property #10

Open noteon opened 8 years ago

noteon commented 8 years ago

e.g. computed: {

  example: {
     cache: false, //no cache 
     get: function () {
       return Date.now() + this.msg
    }
  }
}

in vue-typescript, how to get this feature by using decorator?

itsfrank commented 8 years ago

Hmm, this was an oversight. For now if the property is only used in the template, you can define it in the decorator:

If the property is used in code you will have to cast 'this' like so: (<any>this).a for now just declare a variable of the same name and type (dont assign it a value, just declare it).

@VueComponent({
    computed: {
        a: {
            cache:false,
            get:function(){return 'hello'}
        }
    }
})
export class Component{

   a:string;

    ready(){
        console.log(this.a) //<will get the computed function above
    }
}

Ill think of a solution and reply here when i have one, this will probably require the addition of a new decorator. Putting @Copmuted({}) above the getter or setter most probably