フォームの挿入と検証に Collection2 を使用しています。それはうまくいきます。
コンテキストを使用してキーにアクセスし、クライアントのユーザーにエラーを表示する唯一の問題。
次のコードがあります。
Common.coffee
Schemas = {}
Schemas.Journal = new SimpleSchema
goal:
type: String
label: "Related Goal"
max: 200
description:
type: String
label: "Comment"
max: 200
likes:
type: Number
label: "Likes"
min: 0
createdBy:
type: String
max: 50
createdAt:
type: Date
label: "Created At"
Journal.attachSchema(Schemas.Journal)
journalContext = Schemas.Journal.namedContext("insertForm")
On Client:
Template.journalForm.events
'submit #newEntryForm': (event) ->
text = event.target.text.value
Meteor.call("newJournalEntry", Session.get("activeGoal"), text)
On Server as a Method:
'newJournalEntry': (goalId, text) ->
Journal.insert
goal: goalId
description: text
createdAt: new Date()
createdBy: Meteor.userId()
likes: 0
{validationContext: "insertForm"}, (error, result) ->
if error
console.log error.invalidKeys
else
console.log "#{result} added to Journal collection."
検証はサーバー上で正しく機能し、挿入が拒否された場合、ターミナル経由で正しいメッセージが表示されますが、クライアントで検証コンテキストを呼び出すと、常に空の配列が返されます。[]
サーバーでは次のいずれかが機能しますが、クライアントでこれらを試してみると、空です:
Schemas.Journal.namedContext("insertForm").invalidKeys()
また
error.invalidKeys
更新: ON THE CLIENT の構文でさらにいくつかの試行を試みました。同じ空の配列結果。ここに試みがあります:
Schemas.Journal.namedContext().invalidKeys()
journalContext.invalidKeys()
Schemas.Journal.namedContext("insertForm").invalidKeys()