2017-01-23 8 views
-1

Я новичок в позвоночнике, и я все еще привыкаю к ​​потоку всего. То, что я пытаюсь сделать, это импортировать файл data.json в мою модель и использовать его в моей вид ...Импорт json в backbone View

data.json

[ 
    { id: "001", student: "Mark" }, 
    { id: "002", student: "Sally" }, 
    { id: "003", student: "Harold" }  
] 

активы/data.js (модель)

var DataModel = Backbone.Model.extend({ 
    url: 'assets/data.json', 

    initialize: function() { 
     // this logs properly 
     console.log('this initializes'); 
    } 
}) 

data_view.js

var Students = Backbone.View.extend({ 
    initialize: function() { 
     var data = new DataModel(); 
     data.fetch(); 

     // doesn't return json 
     console.log(data); 
    } 
}) 

журналы данных, как так ...

v __proto__: Backbone.Model 
    > constructor:() 
    > initialize:() 
    url: "assets/data.json" 
    > __proto__: Object 

Все мои импорта являются правильными, но почему это не моя нагрузка в формате JSON с моей точки зрения? Что я делаю не так? (Я пытался создать коллекцию, но это имело такой же эффект: никакого json не было найдено)

+0

Является 'data.json' внутри активов? Вы используете хром? У вас есть веб-сервер? Если нет, разрешен ли доступ к локальному файлу? –

ответ

2

Потому что fetch использует jQuery Ajax, поэтому он асинхронный. Если вы регистрируете данные сразу после вызова fetch, данные не вытягиваются с сервера. Вы должны сделать следующие:

data.fetch({ 
    success: function(model, response, options) { 
     console.log(model); 
    }, 
    error: function() { 

    } 
}); 

ссылка Ссылка: http://backbonejs.org/#Model-fetch

+0

Хмм, похоже, ничего не возвращает в консоль ... – Modelesq

+0

Я имею в виду, если я зарегистрирую что-то в ошибке(), он будет записывать ...: \ – Modelesq

+0

Можете ли вы сообщить об ошибке? И data.json является статическим файлом? –

0

С помощью JQuery:

 var DataModel = new DataModel(); 
     $.when(DataModel.fetch()).then(function() { 
      var students = new Students({model: DataModel }); 
     }); 

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

  • Нет связанных вопросов^_^