Я использую spine.js вместе с модулем Spine.Ajax
для загрузки материалов через JSON с сервера.Я, вероятно, столкнулся с некоторой проблемой синхронизации.У меня есть боковая панель, которая просто привязывается к событиям обновления и изменения, а затем отображается:
Survey.bind 'refresh change', @render
Я также настроил некоторые маршруты, которые отображают опрос, когда пользователь обращается к нему через # / survey /:Я бы.Это мой контроллер:
class App.Surveys extends Spine.Controller
className: 'surveys'
constructor: ->
super
@append(@sidebar = new App.Sidebar) # Sidebar to select surveys
@append(@surveys = new App.SurveysStack) # Show survey details survey
@routes
'/surveys/:id': (params) ->
@sidebar.active(params)
@surveys.show.active(params)
Survey.fetch()
Как видите, Survey.fetch()
вызывается после инициализации, что не создает проблем для боковой панели.Однако, похоже, что это создает проблемы для контроллера опросов Show
(который вызывается Spine.Stack
называемым App.SurveyStack
):
class Show extends Spine.Controller
constructor: ->
super
@active @change
change: (params) =>
# There is a bug! If Survey is not fetched when we run this,
# this throws an error.
@item = Survey.find(params.id)
@render()
render: ->
@html @view("surveys/show")(@item)
Я продолжаю получать ошибки от закомментированной частиИсточник: Uncaught Unknown record
.Могу ли я сделать функциональный блок Survey.find()
до тех пор, пока Survey.fetch()
не будет завершен?