2015-09-10 188 views
0

我对vue非常陌生。我试图执行一个简单的for循环,但由于某种原因,它不工作。任何帮助将不胜感激。我的代码:不能在vue.js中执行for循环

var Vue = require('vue'); 
Vue.use(require('vue-resource')); 
Vue.http.headers.common['X-CSRF-TOKEN'] = document.querySelector('#token').getAttribute('value'); 
new Vue({ 

    el: '#adresponse', 

    ready: function() { 
     this.fetchMessages(); 
    }, 

    data: { 
     classified_bids: {}, 
     accept_qty: {}, 
     submitted: false 
    }, 

    methods: { 
     fetchMessages: function() { 
      this.$http.get('/api/getbids') 
       .success(function (bids) { 
        this.classified_bids = bids; 
        for (i = 0; i < this.classified_bids.length; i++) { 
         this.accept_qty[i] = 0; 
        } 
       }); 
     } 
    } 
}); 

回答

0

你的问题是this.success()回调中的价值。

你可以尝试这样的事:

this.$http.get('/api/getbids') 
    .success(function (bids) { 
    this.classified_bids = bids; 
    for (i = 0; i < this.classified_bids.length; i++) { 
     this.accept_qty[i] = 0; 
    } 
    }.bind(this)); 

Similar problem

1

通过改变像这样循环,这工作:

el: '#adresponse', 

ready: function() { 
    this.fetchMessages(); 
}, 

data: { 
    classified_bids: {}, 
    accept_qty: {}, 
    submitted: false 
}, 

methods: { 
    fetchMessages: function() { 
     this.$http.get('/api/getbids') 
      .success(function (bids) { 
       this.classified_bids = bids; 
       for (var key in this.classified_bids) { 
        this.accept_qty[key] = 0; 
       } 
      }); 
    } 
} 

});