2013-05-30 1 views
0

В настоящее время я разрабатываю одностраничное приложение, и я использую backbonejs для него. Мой backend-ответ - JSON, я получаю метод fetch(). Проблема, с которой я столкнулся с атрибутом userNames , заполняется соответствующими значениями только тогда, когда я использую fetch ({async: false}), если я использую fetch(), я получаю пустой ответ.Backbonejs извлекает значения только при передаче asyc: false в качестве параметра метода fetch()

Я делаю что-то не так? Мне что-то не хватает? Мой код выглядит следующим образом.

$(document).ready(function(){ 
    var booking_model = Backbone.Model.extend({}); 

    var UserList = Backbone.Collection.extend({ 
    model: booking_model, 
    url: 'js/bookings.json', 
    parse: function(response) {return response}; 


}); 





    var users = new UserList(); //Line 26 
    users.fetch({async: false}); 
    var userNames = users.pluck("bookingId"); 
    console.log(userNames) 
}); 

Мой JSON

[ 
     { 
      "bookingId": 260, 
      "bookingSourceId": "Online", 
      "bookingTime": "Jan1391312: 00: 00AM", 
      "noOfPeople": "10", 
      "reserveDate": "ThuJan0200: 00: 00IST3913", 
      "restId": 200, 
      "timing_id": 200 
     }, 
     { 
      "bookingId": 280, 
      "bookingTime": "Dec25 20121: 43: 49AM", 
      "noOfPeople": "6", 
      "reserveDate": "ThuJan2600: 00: 00IST2012", 
      "restId": 220, 
      "timing_id": 205 
     }, 
     { 
      "bookingId": 300, 
      "bookingTime": "Dec26 20122: 12: 00AM", 
      "noOfPeople": "4", 
      "reserveDate": "FriJan2700: 00: 00IST2012", 
      "restId": 260, 
      "timing_id": 220 
     }, 
     { 
      "bookingId": 320, 
      "bookingTime": "Dec27 20122: 14: 54AM", 
      "noOfPeople": "10", 
      "reserveDate": "SunJan2900: 00: 00IST2012", 
      "restId": 260, 
      "timing_id": 201 
     }, 
     { 
      "bookingId": 340, 
      "bookingTime": "Dec25 20122: 35: 19AM", 
      "noOfPeople": "8", 
      "reserveDate": "TueJan2400: 00: 00IST2012", 
      "restId": 220, 
      "timing_id": 205 
     }, 
     { 
      "bookingId": 360, 
      "bookingSourceId": "Online", 
      "bookingTime": "May30 391312: 00: 00AM", 
      "noOfPeople": "10", 
      "reserveDate": "FriMay3000: 00: 00IST3913", 
      "restId": 200, 
      "timing_id": 200, 
      "bookingUser": "hareesh", 
      "bookingPhoneNo": "9052228181", 
      "bookingEmail": "[email protected]" 
     } 



    ] 

ответ

4

Вы что-то отсутствует очевидное:

users.fetch({ 
    success: function() { 
    var userNames = users.pluck("bookingId"); 
    console.log(userNames) 
    } 
}); 

Когда "выборка" операция является асинхронным, код, который сразу следует за ним будет работать задолго до операции HTTP завершено.

+0

Большое спасибо! Это сработало – sri85

Смежные вопросы