Heim  >  Fragen und Antworten  >  Hauptteil

„Verwendung der v-for-Direktive zur Destrukturierung von Array-Elementen und Attributen“

Ist es bei Verwendung eines Objektarrays möglich, gleichzeitig das aktuelle Objekt einer Variablen zuzuweisen und seine Eigenschaften in einer v-forSchleife zu zerstören? So:

<div v-for="(person = {name, age}, index) in persons">

Letztendlich möchte ich sowohl das gesamte person Objekt als auch seine Eigenschaften in einer Vorlage verwenden können.

P粉420958692P粉420958692348 Tage vor608

Antworte allen(1)Ich werde antworten

  • P粉115840076

    P粉1158400762023-11-06 15:56:06

    据我所知,你不能同时做这两件事。

    但是,你可以解构,例如:

    <div v-for="({name, age}, index) in persons">
    

    然后你可以通过索引访问正确的元素:persons[index]


    示例:

    new Vue({
      el: "#app",
      data: {
        todos: [{
            text: "Learn JavaScript",
            done: false
          },
          {
            text: "Learn Vue",
            done: false
          },
          {
            text: "Play around in JSFiddle",
            done: true
          },
          {
            text: "Build something awesome",
            done: true
          }
        ]
      },
      methods: {
        toggle: function(index) {
          this.todos[index].done = !this.todos[index].done
        }
      }
    })
    body {
      background: #20262E;
      padding: 20px;
      font-family: Helvetica;
    }
    
    #app {
      background: #fff;
      border-radius: 4px;
      padding: 20px;
      transition: all 0.2s;
    }
    
    li {
      margin: 8px 0;
    }
    
    h2 {
      font-weight: bold;
      margin-bottom: 15px;
    }
    
    del {
      color: rgba(0, 0, 0, 0.3);
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
    <div id="app">
      <h2>Todos:</h2>
      <ol>
        <li v-for="({text, done}, i) in todos">
          <label>
            <input type="checkbox"
              v-on:change="toggle(i)"
              v-bind:checked="done">
    
            <del v-if="done">
              {{ text }}
            </del>
            <span v-else>
              {{ text }}
            </span>
            
            {{todos[i]}}
          </label>
        </li>
      </ol>
    </div>

    Antwort
    0
  • StornierenAntwort