У меня есть такой маршрутизатор в мое приложение:Уплотненный маршрут ресурсов запускает родительский ресурс маршрут
TravelApi.Router.map ->
@resource 'stars', ->
@resource 'star', { path: '/:star_id' }
Когда я иду в http://localhost/#/stars
я вижу в веб-консоли, что есть один запрос
GET http: // localhost: 3000/stars
И когда я иду на http://localhost/#/stars/1
я вижу в веб-консоли, что есть два запроса
GET HTTP: // локальный: 3000/звезды
GET HTTP: // локальный: 3000/Звезды/1
Вопрос: почему во втором случае есть два запроса?
Stars маршрут:
TravelApi.StarRoute = Ember.Route.extend(
model: (params) ->
TravelApi.Star.find(params.star_id)
)
TravelApi.StarsRoute = Ember.Route.extend(
model: ->
TravelApi.Star.find()
)
И мои шаблоны: application.js.hbs.hamlbars
= hb "linkTo 'stars'" do
stars
%div= hb 'outlet'
stars.js.hbs.hamlbars
%ul
=hb "each star in controller" do
%li<
=hb 'star.name'
star.js.hbs.hamlbars
Star:
= hb 'name'
магазин .js.coffee
TravelApi.store = DS.Store.create(
revision: 11
adapter: DS.RESTAdapter.create()
)
Это действительно не должно делать второй запрос, если у вас уже есть эта запись в 'Store'. Можете ли вы добавить определение своего «Хранилища»? у вас есть пользовательский первичный ключ? Кроме того, в «StarRoute» попробуйте изменить его на «App.store.find (« App.Star », params.star_id)». Не уверен, если это будет иметь значение, но попробуйте его – MilkyWayJoe
Теперь вы можете увидеть мое определение магазина. Также я изменяю первичный ключ в json от ** _ id ** до ** id ** (из-за mongoid). Я также добавляю выход в stars.js.hdb.hamlbars. Теперь у меня есть два запроса только при загрузке первого ресурса, но если я загружаю звезды раньше, чем у меня есть только один запрос каждый раз при загрузке специальной звезды (по id) *** GET http: // localhost: 3000/stars *** – freemanoid