2016-12-07 8 views
1

Я новичок в Ember и до сих пор впечатлен тем, насколько лаконично все. Хотя запросы данных с EmberFire кажутся немного странными. Например, в качестве компонента JS, я могу найти запись с:Запрос Ember Emberfire

store.query('user', { orderBy: 'email', equalTo: email }).then((response) => { 
    // expect response to be an object, or an array of objects 
    // but its actually a class, and needs the following to return data  
    var user = response.get('content')[0]._data; 

    // now able to access properties as originally expected 
    console.log(user.email); 
}); 

Хотя вышеуказанные работы, он не чувствует себя очень элегантно. Я что-то упускаю? Насколько я вижу, документация останавливается при объяснении запроса, поэтому всякая помощь в отношении надлежащего способа доступа к свойствам модели будет высоко оценена.

Благодаря

ответ

0

store.query возвращает обещание, устраняющее к AdapterPopulatedRecordArray. Так что да, он должен возвращать класс.

Если вы ожидаете возвращения только одной записи, вам следует использовать queryRecord.

store.queryRecord('user', { orderBy: 'email', equalTo: email }).then((user) => { 
    // now able to access properties as expected 
    console.log(user.get('email')); 
}); 

Если вы ждете более чем на 1 запись, продолжайте использовать query, и вы будете иметь возможность Переберите результатов пользователей, которые возвращаются.

+0

«Вы пытались сделать запрос, но ваш адаптер не реализует« queryRecord », имя:« Error »...} description: undefinedfileName: undefinedlineNumber: undefinedmessage:« Assertion Failed: вы пытались сделать запрос, но ваш адаптер делает не реализовать 'queryRecord'": –

+0

Какую версию ember и адаптер вы используете? – xcskier56

+0

"emberfire": "2.0.4" ember-cli: 2.8.0 node: 4.0.0 –

0

Эта проблема существует некоторое время, и это потому, что EmberFire был устарел, прежде чем кто-нибудь написал элегантный способ запросить этот способ.

This add-on решает проблему, и позволит вам запросить практически любой способ, которым вы можете представить, с помощью метода filterCustom.

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

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