2013-05-13 3 views
0

Я новичок в EmberJS и не могу понять, что не так с моим кодом. Я прочитал и сравнил различные примеры проектов в надежде найти «недостающее звено», поэтому я оценил бы второй набор глаза на это:EmberJS не отображает результаты DS.RestAdapter

Я использую:

  • handlebars.js 1.0.0 -rc.3
  • Эмбер-latest.js (на AWS)
  • Эмбер-данных-latest.js (на AWS)

Кровотечение края, потому что я постоянно получаю ошибки с тем, что есть на сайте.

index.html:

<script type="text/x-handlebars" data-template-name="application"> 
{{outlet}} 
</script> 

<script type="text/x-handlebars" data-template-name="items"> 
    <h2>Total entries: {{length}}</h2> 
    {{#if length}} 
    <ul> 
    {{#each item in controller}} 
    <li>{{item.title}}</li> 
    {{/each}} 
    </ul> 
    {{/if}} 
</script> 

app.js:

window.App = Ember.Application.create({ 
    LOG_TRANSITIONS: true 
}); 

// Model 
App.Store = DS.Store.extend({ 
    revision: 12, 
    adapter: DS.RESTAdapter.extend({ 
    bulkCommit: false, 
    url:  '/api' 
    }) 
}); 

App.Item = DS.Model.extend({ 
    id: DS.attr('number'), 
    title: DS.attr('string') 
}); 

// Router 
App.Router.map(function() { 
    this.resource('items', function() { 
    this.resource('item', { path: ':item_id' }); 
    }); 
}); 

App.IndexRoute = Ember.Route.extend({ 
    redirect: function() { 
    this.transitionTo('items'); 
    } 
}); 

App.ApplicationRoute = Ember.Route.extend({ 
    setupController: function() { 
    this.controllerFor('item').set('model', App.Item.find()); 
    } 
}); 

App.ItemsRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Item.find(); 
    } 
}); 

// Controller 
App.ItemsController = Ember.ArrayController.extend({ 
    sortProperties: ['title'] 
}); 

App.ItemController = Ember.ObjectController.extend({ 
    isEditing: false, 

    editItem: function() { 
    this.set('isEditing', true); 
    } 
}); 

На нагрузке, запрос XHR выполнен с/API/пунктов, который возвращает следующим образом:

{"items": 
    [ 
    { 
     "id":"518c7ceeef56038b77000000", 
     "title":"Test 1" 
    }, 
    { 
     "id":"518c7ceeef56038b77000001", 
     "title":"Test 2" 
    } 
    ] 
} 

Так что данные поступают ieved, но почему-то это просто не отображается пользователю!

Поблагодарите некоторых указателей. Благодаря!

ответ

0

Я могу представить, что ваша модель неверна, поле id в данных ember-data dosn't должно быть указано явно, если имя id. Комментарий в source code гласит:

Получить имя ключа основного для записи по телефону сериализатора-х primaryKey с типом пластинки. Если вы не отмените метод primaryKey, это будет 'id'.

Попробуйте изменить модель в эту упрощенной версию:

App.Item = DS.Model.extend({ 
    title: DS.attr('string') 
}); 

Надеется, что это помогает

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