javascript - Können die gepushten Daten nicht in v-for abgerufen werden?
PHPz
PHPz 2017-05-19 10:21:07
0
3
728

Nachdem Sie im folgenden Code auf die Schaltfläche geklickt haben, ändert sich der Inhalt des Arrays app.items2 und die zweite UL wird ebenfalls in ein Li gerendert, aber die item.message in items2 wird nicht gerendert. Warum ist das so und wie kann man es lösen? ?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>

    </style>
</head>
<body>
    <p id="example-1">
        <ul>
            <li v-for="item in items">
                {{ item.message }}
            </li>
            
        </ul>
        <ul>
            <li v-for="item in items2">{{ item.message }}</li>
        </ul>
        <button @click="aaa">移动</button>
    </p>
    <script src="http://vuejs.org/js/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#example-1',
            data: {
                items: [{
                    message: 'Foo'
                }, {
                    message: 'Bar'
                }],
                items2: []
            },
            methods: {
                aaa: function() {
                    this.items2.push(this.items.splice(0, 1));
                }
            }
        })
    </script>
</body>
</html>
PHPz
PHPz

学习是最好的投资!

Antworte allen(3)
伊谢尔伦

Array.prototype.splice() 返回值 由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。

https://developer.mozilla.org...

this.items2.push(this.items.splice(0, 1)[0]);

https://jsfiddle.net/ycloud/n...

给我你的怀抱

this.items2.push(...this.items.splice(0, 1));

黄舟

splice方法返回一个数组
push接受不定长参数
可以使用concat方法
this.items2 = this.items2.concat(this.items.splice(0, 1));

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!