Vue js - 来自请求的数据不会呈现

时间:2017-08-04 10:10:53

标签: javascript jquery html vue.js vuejs2

我有下一个vue实例:

 var immobles_destacats = ($('#immobles_destacats').length > 0) ? new Vue({
  el: '#immobles_destacats',
  data: {
    immobles: {}
  },
  methods: {
    add: function(i) {
      if (this.immobles[i].imatges.lenght == this.immobles[i].counter) {
        return this.immobles[i].counter = 0;
      }
      return this.immobles[i].counter++;
    },
    substract: function(i) {
      if (this.immobles[i].counter == 0) {
        return this.immobles[i].counter = this.immobles[i].imatges.lenght;
      }
      return this.immobles[i].counter--;
    }
  },
  mounted: function() {
    $.post('get_immobles_destacats', function(immobles, textStatus, xhr) {
      for (var i = 0; i < immobles.length; i++) {
        immobles_destacats.immobles[i] = immobles[i];
        immobles_destacats.immobles[i].counter = 0;
      }
    });
  }
}) : null;

下一个用于呈现数据'immobles'的html:

<div id="immobles_destacats">
    <div v-for="(immoble, key) in immobles" class="immoble"><img v-bind:src="immoble.imatges[immoble.counter].url"/>
      <input type="button" v-on:click="add(key)" value="+"/>
      <input type="button" v-on:click="substract(key)" value="-"/>
    </div>
  </div>

正如您所看到的,我在挂载的函数中设置了数据'immobles',我得到了这个: google chrome Vue DevTools extension on the loaded page 问题来自页面加载时没有呈现任何内容,是因为数据'immobles'在填写post请求时不会触发“onchange-renderhtml”?如果是这样,我怎样才能将这个“onchange-renderhtml”设置为数据'immobles'?

1 个答案:

答案 0 :(得分:0)

我好运解决了这个问题,我仍然不知道为什么这不起作用,但关键是现在它确实如此,这是新的Vue实例:

<script src="js/main.js"></script>

请注意,现在我按下对象并在推动之前设置计数器。 此外,数据&#39; immobles&#39;现在是一个数组,而不是一个对象