2013-07-24 3 views
1

Я получаю JSON, как на консоли, но я получаю эту ошибку,Получение данных в формате JSON, но это не становится загружен в поле зрения в ember.js

Assertion failed: Your server returned a hash with the key 0 but you have no mapping for it 

и эта ошибка,

TypeError {} "Cannot call method 'toString' of undefined" 

Вот образец ответа JSON,

[{"id":"1","last_name":"Solow","first_name":"Jeanne","suffix":null,"expiration":"2013-11-15","email":"[email protected]","street":"16 Ludden Dr.","city":"Austin","state":"TX","zip":"33347","phone":"964-665-8735","interests":"Great Depression,Spanish-American War,Westward movement,Civil Rights,Sports"}, {etc..} 

Вот мой app.js,

App = Ember.Application.create({}); 

App.Store = DS.Store.extend({ 
    revision : 12, 
    adapter : DS.RESTAdapter.extend({ 
     url : 'http://ankur1.local/index.php/api/example/users/format/json', 
     dataType : 'jsonp', 
    }) 
}); 

App.IndexRoute = Ember.Route.extend({ 
    renderTemplate : function() { 
     this.render('myTemplate', { 
      controller : 'Index' 
     }); 
    }, 
    model : function() { 
     return App.myTemplate.find(); 
    } 
}); 

App.IndexController = Ember.Controller.extend({ 
    user : Ember.Object.create({ 
     name : "" 
    }), 
    userNameBinding : Ember.Binding.oneWay("this.user.name"), 
    clickButton : function(name) { 

     if ($("#name").val().trim().length === 0) { 
      alert("text box is empty"); 
     } else { 

     } 
    } 
}); 

App.myTemplate = DS.Model.extend({ 
    id : DS.attr('int'), 
    last_name : DS.attr('string'), 
    first_name : DS.attr('string'), 
    suffix : DS.attr('string'), 
    expiration : DS.attr('date') 
}); 

Один момент для заметок Я использую библиотеку RegServer для Codeigniter Phil Sturgeon на бэкэнд. Что может быть неправильно с моим кодом или это может быть проблемой с бэкэндом?

ответ

1

Для данных Ember требуется, чтобы ответ json находился в определенном формате. Базовый ключ должен быть именем модели. В вашем случае нет базового ключа.

Пример: Вы возвращающий следующую

[{"id":"1", 
    "last_name":"Solow", 
    "first_name":"Jeanne", 
    "suffix":null, 
    "expiration":"2013-11-15", 
    "email":"[email protected]", 
    "street":"16 Ludden Dr."}, {etc}] 

но уголек нужно что-то вроде этого:

{'users': [{"id":"1", 
    "last_name":"Solow", 
    "first_name":"Jeanne", 
    "suffix":null, 
    "expiration":"2013-11-15", 
    "email":"[email protected]", 
    "street":"16 Ludden Dr."}, {etc}]} 

Либо нужно изменить ответ JSON от сервера, или использовать другой библиотека для интерфейса с сервером.