Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vuejs returns [object Object] from data attribute

I have the following jsfiddle example (check the console) and all you will see is [object Object] instead of person data:

So, basically I have a vuejs instance and a div for v-for to iterate an object

<div id='app'>
  <p v-for="person in people[0]"> 
    <span> {{ person.name }}</span>
        <i class="fa fa-check" 
        v-bind:data-identity="person" 
        @click="addDetail($event)"></i>
  </p>
</div>

The problem is that if I echo {{ person }} I can see a JSON data on the page, but if I try to get it in the function addDetail() with e.target.dataset.identity then all I get is [object Object] and not the json data. I have tried JSON.parse and String methods, non of them work.

like image 775
hidar Avatar asked Feb 26 '26 23:02

hidar


1 Answers

v-bind:data-identity="person" coverts person to string hence you can't attach an object to dataset as any object.toString() method returns [Object object] and you are getting the same

try to attach any string like person.name and see if it is reflected in your dataset

https://jsfiddle.net/qthg4Lwm/

hope this will help :)

EDIT: All data attributes are string read this article

from above article

Each property is a string and can be read and written. In the above case setting article.dataset.columns = 5 would change that attribute to "5".

like image 158
Nemani Avatar answered Mar 02 '26 05:03

Nemani