如何重新制作html + vuejs代码,以便它可以在包含多个帖子的页面上运行?

时间:2017-07-20 11:44:08

标签: html laravel vue.js

在帖子编辑页面上有完整的工作代码

Domain

Field

我只需要在表格中显示每个帖子的信息的页面上使用相同的功能。也就是说,如果你看到10行,那么每行需要一个按钮。

我试着这样做:

<a href="#" v-on:click="confirm = 1" v-show="!confirm" class="btn btn-xs btn-danger">Delete</a>
<span v-if="confirm">
    Are you sure?
    <a href="{{ route('admin:news:delete', $news->id) }}" class="btn btn-xs btn-danger">Yes</a>
    <a href="#" v-on:click="confirm = 0" class="btn btn-xs btn-success">No</a>
</span>
而这:

var app = new Vue({
  el: '#app',
  data: {
      confirm: 0
  }
});

<a href="#" v-on:click="confirm[{{ $news->id }}] = 1" v-show="!confirm[{{ $news->id }}]" class="btn btn-xs btn-danger">Delete</a>
<span v-if="confirm[{{ $news->id }}]">
    Are you sure?
    <a href="{{ route('admin:news:delete', $news->id) }}" class="btn btn-xs btn-danger">Yes</a>
    <a href="#" v-on:click="confirm[{{ $news->id }}] = 0" class="btn btn-xs btn-success">No</a>
</span>

但它不起作用。

我认为这是一项常见任务,已经多次完成,但我是vuejs的新手,我不知道如何实现它。

请帮帮我!

2 个答案:

答案 0 :(得分:1)

由于您将$ news变量存储在组件状态中,因此您必须使用vuejs语法访问新闻变量:在变量名称之前不需要$。

我认为您正在使用v-来显示新闻,但是您尝试插入不存在的PHP变量。

答案 1 :(得分:0)

我已经解决了!!!

我不知道它是如何工作的,但它确实有效!请解释一下。

&#13;
&#13;
var app = new Vue({
    el: '#app',
    data: {
        items: {},
        activeClass: 'active'
    },
    created: function () {
        var items = this.items;
        var news = {!! $news->toJson() !!};
        news.data.forEach(function(element) {
            items[element.id] = 0;
        });
    },
    methods: {
        setItemId1: function (item_id) {
            this.activeClass = 'active2';
            this.activeClass = 'active3';
            var items = this.items;
            Object.keys(this.items).forEach(function(key) {
                if (item_id == key) {
                    items[key] = 1;
                } else {
                    items[key] = 0;
                }
            });
        },
        setItemId0: function (item_id) {
            this.activeClass = 'active2';
            this.activeClass = 'active3';
            this.items[item_id] = 0;
        }
    }
});
&#13;
<button v-on:click="setItemId1({{ $news->id }})" v-bind:class="activeClass" v-show="!items[{{ $news->id }}]" class="btn btn-xs btn-primary">Delete</button>
<span v-if="items[{{ $news->id }}]">
    <a href="{{ route('admin.news.delete', $news->id) }}" class="btn btn-xs btn-success">Yes</a>
    <a href="#" v-on:click="setItemId0({{ $news->id }})" class="btn btn-xs btn-danger">No</a>
</span>
&#13;
&#13;
&#13;