-2

I am a newbie of VueJs How to use a variable in v-if??

My js file

data: {
    member: [
      {
        id:"1",
        Firstname: "Peter",
        Lastname: "Super"
      },
      {
        id:"2",
        Firstname: "Roger",
        Lastname: "Power",
      }

My Html file

then I want to code like this.

<li v-for="member in members" v-if="members.Firstname === 'Peter'">
   //display data about id 1 Peter Super
</li>

but Is it possible to use a variable in v-if such as

<script>
var name = 'Peter';
</script>
<li v-for="member in members" v-if="members.Firstname === name">
   //display data about id 1 Peter Super
</li>

Thank you very much

1
  • You access an array by index like members[0].Firstname. Commented Jan 11, 2021 at 8:35

3 Answers 3

3

You need to add key param also. More here: https://v2.vuejs.org/v2/guide/list.html

To give Vue a hint so that it can track each node’s identity, and thus reuse and reorder existing elements, you need to provide a unique key attribute for each item:

Also the issue was in the v-if that you were using members instead of member

Try the below pls:

<li v-for="member in members" :key="member.id" v-if="member.Firstname === 'Peter'">
   //it will display id 1 Peter Super
</li>
Sign up to request clarification or add additional context in comments.

Comments

0

The line below lists records whose name is Peter only.

<li v-for="member in members.find(item=>item.name == 'Peter')" >
   //display data about id 1 Peter Super
</li>

Comments

-1

Add that name to your data object then use find method inside the template to check if the name is existing :

data: {
   name:'Peter',
    members: [
      {
        id:"1",
        Firstname: "Peter",
        Lastname: "Super"
      },
      {
        id:"2",
        Firstname: "Roger",
        Lastname: "Power",
      }

template

<li v-if="members.find(member=>member.Firstname === name)">
   //display data about id 1 Peter Super
</li>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.