Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
¿Por qué no puedo acceder a mi función de datos desde mi propiedad calculada?

Tengo esto en mis datos:

 data() { return { hello: "hello", } }

Y tengo una propiedad calculada como esta:

 computed: { serviceHello() { return { sayHello() { console.log(this.hello); }, sayHi(){ console.log("hi"); } } }

Cuando llamo a mis propiedades computadas como esta en mi archivo added.

 this.serviceHello.sayHello(); // console : undefined this.serviceHello.sayHi(); //console write "hi"

Así que traté de ver qué hay dentro de this , pero solo está el contenido del computado (di hola y di hola), no puedo acceder a mis valores en mis datos.

Mi pregunta es, ¿cómo puedo acceder a los data de mi ordenador? Quiero que sayHello muestre el hello de mis datos.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Tus funciones calculadas son incorrectas. Debería ser:

 computed: { sayHello() { console.log(this.hello); }, sayHi() { console.log("hi"); } }

La forma en que lo escribió significa que la palabra clave this hará referencia al contexto del objeto en sí y no al contexto del componente.

about 4 years ago · Juan Pablo Isaza Report

0

Está utilizando de manera incorrecta una propiedad calculada. Las propiedades calculadas deben devolver un valor;

Prueba de esta manera.

 computed: { sayHello() { return this.hello; }, sayHi() { return "hi"; } }

y acceda como this.sayHello o {{sayHello}} en las plantillas.

Si está tratando de usar un Setter calculado, puede usarlo como este ejemplo a continuación:

 computed: { fullName: { // getter get: function () { return this.firstName + ' ' + this.lastName }, // setter set: function (newValue) { var names = newValue.split(' ') this.firstName = names[0] this.lastName = names[names.length - 1] } } }

Más información aquí https://v2.vuejs.org/v2/guide/computed.html

about 4 years ago · Juan Pablo Isaza Report

0

Simplemente asigne this a una variable global y utilícelo dentro de la función devuelta:

 new Vue({ el: "#app", data() { return { message: 'Welcome to Vue !', }; }, computed: { serviceHello() { let vm = this //assign it here to a global variable vm return { sayHello() { console.log(vm.message);//use vm here }, sayHi() { console.log("hi"); } } }, }, methods: { doSomething() { this.serviceHello.sayHello(); this.serviceHello.sayHi(); } }, mounted(){ this.serviceHello.sayHello(); this.serviceHello.sayHi(); } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <h1>{{ message }}</h1> <button @click="doSomething">Say hello.</button> </div>

Esto funciona bien, pero no es el trabajo de la propiedad calculada que debe usarse para devolver algunas cosas basadas en otras propiedades.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!