0

私は次のコードを持っています:

GetPublication = new Meteor.Collection 'get-publication'

Meteor.autorun ->
  Meteor.subscribe 'get-publication', Session.get 'currentPublicationId', {
    onReady: console.log "ready"
    onError: (error) -> console.error "error", error
  }

Template.publication.publication = ->
  # How to know here what was an error thrown in subscription?
  JSON.stringify GetPublication.findOne()

カスタムコレクションがあります:

Meteor.publish 'get-publication', (publicationId) ->
  self = this
  self.ready()
  self.error new Meteor.Error 500, "Test"

(空の)パブリケーションコレクションの結果ではなく、サブスクリプションでスローされたコンテンツを含むメッセージをテンプレートに出力したいと思います。

さらに、なぜonReadyハンドラーonErrorが呼び出されないのですか?

4

1 に答える 1

0

console.log("ready")の結果をに代入していますonReady。正しい構文は次のとおりです。

onReady: -> console.log "ready"

Session与えられたエラーを出力したい場合は、エラー コールバックから取得したものを変数 ( など) に保存し、それをテンプレートに出力したいと思うでしょう。このようなもの:

Meteor.autorun ->
  Meteor.subscribe 'get-publication', Session.get 'currentPublicationId', {
    onReady: -> console.log "ready"
    onError: (error) -> Session.set "get-publication-error", error
  }

Template.publication.publicationError = ->
  JSON.stringify(Session.get "get-publication-error")
于 2013-03-19T23:06:14.430 に答える