如何使用vue js显示以下内容?

时间:2017-11-03 07:04:56

标签: javascript html vue.js vue-component

我的JSON是:

[{
  "name": "Health care",
  "cat_id": 1
}, {
  "name": "Education",
  "cat_id": 2
}, {
  "name": "Bakery",
  "cat_id": 3
}, {
  "name": "Software company",
  "cat_id": 4
}]

我的vue js脚本是。

<script>
  new Vue({
  el: '#categories' ,
  data: {
    articles: [],
  },
  mounted() {
    this.$nextTick(function() {
      var self = this;
      $.ajax({
            url: "https://",
            method: "GET",
            dataType: "JSON",
            success: function (e) {

                    self.articles = e.articles;
                    console.log(e.articles)

            },
        });
    })
  },

})

</script>

使用的html代码是

<div v-for="post in articles" id="categories">
                <div class="top">
                    <h4>Top Categories</h4>
                    <ul class="mov_list">
                        <li><i class="fa fa-star"></i></li>
                        <li>77</li>
                        <li><a href="">{{post.name}}</a></li>
                    </ul>   
                </div>
      </div>

这是我试图显示不同类别的地方。但是我收到了一些错误。任何人都可以帮我展示一样。我在js中很弱

1 个答案:

答案 0 :(得分:0)

看起来像是一个范围问题。必须在函数之外声明self。我仍然相信你不需要指定回调。这样的事情就足够了:

<script>
new Vue({
    el: '#app',
    data: {
        articles: [],
    },
    mounted() {
        var self = this;

        $.ajax({
            url: "https://n2s.herokuapp.com/api/post/get_all_category/",
            method: "GET",
            dataType: "JSON",
            success: function(e) {
                self.articles = e.articles;
                console.log(e.articles)
            },
        });
    },
})
</script>

HTML:

<div id="app">
    <div v-for="post in articles">
        <div class="top">
            <h4>Top Categories</h4>
            <ul class="mov_list">
                <li><i class="fa fa-star"></i></li>
                <li>77</li>
                <li><a href="">{{post.name}}</a></li>
            </ul>   
        </div>
    </div>
</div>

干杯!