поэтому я начал создавать приложение, которое использует ember и hapi для изучения обоих.
Я вставил фрагменты ниже, но у меня также есть и сервер, и приложение Ember, доступные в репозитории здесь, https://github.com/jrutishauser/contactsApp, если вам интересно посмотреть, что у меня там есть.
У меня есть сервер hapi, показывающий ниже с моего сервера sql
{"data":[{"id":1,"first_name":"Joe","middle_initial":null,"last_name":"Smith","title":null,"phone_number":"(555) 111-2222","email":"[email protected]","street_address":"123 Some Street","city":"Salt Lake City","state":"Utah","zip_code":"84111","created_at":1456988902625,"updated_at":1456988902625},{"id":2,"first_name":"John","middle_initial":null,"last_name":"Jones","title":null,"phone_number":"(555) 222-3333","email":"[email protected]","street_address":"1432 Another Street","city":"Montgomery","state":"Alabama","zip_code":"99291","created_at":1456988902625,"updated_at":1456988902625},{"id":3,"first_name":"Joe","middle_initial":null,"last_name":"Smith","title":null,"phone_number":"(555) 111-2222","email":"[email protected]","street_address":"123 Some Street","city":"Salt Lake City","state":"Utah","zip_code":"84111","created_at":1457588539468,"updated_at":1457588539468},{"id":4,"first_name":"John","middle_initial":null,"last_name":"Jones","title":null,"phone_number":"(555) 222-3333","email":"[email protected]","street_address":"1432 Another Street","city":"Montgomery","state":"Alabama","zip_code":"99291","created_at":1457588539468,"updated_at":1457588539468}]}
at
http://localhost:3000/api/contacts
в моем приложении ember есть следующие файлы, содержащие:
адаптеры/application.js,
1 import DS from 'ember-data';
3 export default DS.JSONAPIAdapter.extend({
4 namespace: 'api',
5 host: 'http://localhost:3000'
6 });
модели/contact.js,
1 import DS from 'ember-data';
3 export default DS.Model.extend({
5 firstName: DS.attr('string'),
6 lastName: DS.attr('string'),
7 middleInitial: DS.attr('string'),
8 title: DS.attr('string'),
9 phoneNumber: DS.attr('string'),
10 email: DS.attr('string'),
11 streetAddress: DS.attr('string'),
12 city: DS.attr('string'),
13 state: DS.attr('string'),
14 zipCode: DS.attr('string'),
15 createdAt: DS.attr('date'),
16 updatedAt: DS.attr('date')
17 });
маршруты/контакты.js
1 import Ember from 'ember';
2
3 export default Ember.Route.extend({
4 model: function(){
5 return this.store.findAll('contact');
6 }
7 });
Я также установил это в serializers/application.js, но не думаю, что это необходимо, так как мне не нужно ничего нормализовать.
1 import DS from 'ember-data';
2
3 export default DS.JSONAPISerializer.extend({
4 primaryKey: 'id',
5 serializeId: function(id) {
6 return id.toString();
7 }
8 });
шаблоны/контакты.hbs
1 <ul>
2 {{#each contact in model}}
3 <li>{{#link-to 'contact' contact}}{{contact.firstName}}{{/link-to}}</li>
4 {{/each}}
5 </ul>
6
7 {{outlet}}
Все, что я ожидаю, это маршрут контактов, чтобы просто показать список в настоящее время из API, я еще не закончил с этим и застрял здесь на некоторое время.
ошибки консоли, которые я получаю,
ember.debug.js:28590 Error while processing route: contacts.index Assertion Failed: You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from (unknown mixin) Error: Assertion Failed: You may not set `id` as an attribute on your model. Please remove any lines that look like: `id: DS.attr('<type>')` from (unknown mixin)
а также
Error: Assertion Failed: Encountered a resource object with an undefined type (resolved resource using contacts-app@serializer:application:)