Немедленно объявите: не рассматривать эту проблему как реальное приложение. Все делается исключительно с целью самообразования и обучения spine.jsSpine.js и два контроллера
Во-вторых, я знаю об отношении. Я не хочу использовать, потому что мир шире, чем простые отношения. Например, страница со статьей, в которой вы хотите показать пользователей, которые сейчас находятся в сети, или всех тех, кто участвовал в написании статьи.
Представьте себе обычное приложение, которое отображает список сообщений, которые вы можете создавать, показывать, редактировать и удалять. Все на spine.js, все работает отлично. Основано на приложении spine.rails3. Затем я добавил модель комментария с полями post_id и body. Добавлена кнопка Комментарии к показу. Все, что я хочу - загрузить комментарии для этой статьи, нажав кнопку «Комментарии». Мой comment.js.coffee:
class App.Comment extends Spine.Model
@configure 'Comment', 'post_id', 'body', 'created_at', 'updated_at'
@extend Spine.Model.Ajax
@fetch_comments: (id) =>
params =
data: {post_id: id}
url: '/comments/fetch'
processData: true
@ajax().fetch(params)
true
В контроллере Rails:
def fetch
@comments = Comment.where("post_id = ?", params[:post_id])
respond_with @comments
end
В хром консоли все работает отлично:
App.Comment.fetch_comments(11)
App.Comment.all()
И получает от сервера все комментарии с post_id = 11.
И моя проблема в том, что я не знаю, как t о делать то же самое от контроллера сообщений :-( В моей posts.js.coffee:
class Show extends Spine.Controller
events:
......
'click [data-type=show]': 'comments'
comments: ->
@log(@item.id)
new App.Comments(@item.id)
Аnd здесь проблема .... Как реализовать App.Comments контроллер, так что он будет загружен из сервер нуждается в комментариях? Теперь мой Контроллер илит выглядит следующим образом:
Comment = App.Comment
class Index extends Spine.Controller
constructor: (id)->
super
**App.Comment.fetch_comments(id)**
class App.Comments extends Spine.Stack
className: 'comments stack'
controllers:
index: Index
routes:
# '/comments/new': 'new'
'/comments/': 'index'
className: 'stack comments'
А на выбранной линии не работает. Я не знаю, что делать ...
Главный вопрос: как вызвать контроллер с другого контроллера с определенным параметром, а результаты отображаются в главном контроллере?
Возможно, это вопрос о нобе, но я надеюсь на вашу помощь. Большое спасибо заранее.
Извините, но я не совсем понимаю. Как точно использовать ** ** стек ** в контроллере ** Index **? Как я могу получить доступ к ** post_id ** в контроллере индекса? В App.Comments, конечно. – none
Я понял о @stack. Я попытаюсь использовать. Thanx. – none