問題タブ [meteor-autoform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
meteor - meteor でコレクションをサンドボックス化する最良の方法は何ですか?
各ユーザーのデータを他のすべてのユーザーから分離したいと考えています。ユーザーが自分のものだけを表示して変更できるようにする最善の方法は何ですか? 私のアプローチは
- すべてのコレクションに userId フィールドを追加する
- userId でフィルタリングするように、公開されたすべてのコレクションを構成します。
- collections2 で simple-schema を使用
autoValue: function(d) { return this.userId }
し、各スキーマの userId フィールドを追加して、検証中に userId を強制します。
これは適切で正しいアプローチですか?ベストプラクティスとは?
meteor - Meteor autoform 追加入力
コールバックで入力の値を取得したいと思いAutoForm.hooks
after
ます。この入力は私のスキーマの一部ではなく、フォームの送信後に表示されるテンプレート (およびその他の舞台裏のもの) を決定します。autoform テンプレートでプレーン html を使用して入力を作成しています。
私は試した
ライブ入力ではなく、デフォルトのテンプレート html が表示されるようです。
この入力の値を取得する最良の方法は何ですか?
アップデート
after
jQueryを使用して入力を選択するだけで、コールバックで入力値を取得しようとしました。ただし、アフターコールバックが実行される前にオートフォームの何らかのメソッドを介してフォームがクリアされるため、それはできませんでした。
この値をコールバック内からグローバルに保存し、before
コールバックでその値をチェックすることになりましたafter
。
これはまだハックな方法のように思えます。オートフォームを使用して「特別な」方法で入力を作成する必要がある場合でも、この値を何らかの方法で取得できるはずです。
もう 1 つの問題は、一度に DOM にこのフォームが複数ある可能性があることです。そのため、私のソリューションはそのインスタンスではうまく機能しません。
templates - カスタム Meteor オートフォーム テンプレート
ネストされたスキーマがあります。{{> afQuickField name='work_item' template="myTemplate"}}
入力を非常に論理的な方法で出力することを使用しますが、私のより複雑なオブジェクトの一部では、これはあまり実用的ではありません。各入力を他の html に正確に配置できるテンプレートを設定したいと思います。
これらは (通常) オブジェクトの配列でもあるため、.autoform-add-item
ボタンの.autoform-remove-item
機能は非常に優れており、維持したいと考えています。
特定のネストされたスキーマのカスタム テンプレートを定義し、メイン フォームで呼び出すにはどうすればよいですか?
試しました
<template name="afWorkItem_myTemplate">
ブートストラップ 3 フォーム テンプレートから外挿されたカスタム フォーム テンプレートのような名前を作成します。私はそれを好きに呼ぼうとしまし{{> afWorkItem name='work_item' template="myTemplate"}}
たが、それはまったく機能しませんでした。
アップデート
afArrayField
に基づいてさまざまな構造を出力するようにカスタム テンプレートを変更しようとしましたarrayFieldName
。これは少し近いように見えましたが、まだ葉巻ではありません。
次にafArrayField_autoupdate
テンプレートで:
これは非常に近いものでしたが、すべてのフィールド (else ブロックで afQuickField メソッドを使用するだけで選択されたフィールドを含む) はテキスト入力として出力されました。
javascript - autoform を使用した Meteor Method のスキーマの検証
私はautoform、collection2を使用しています。サーバーのデータベースに保存する前にフィールドを追加したいので、挿入/更新にメソッド呼び出しタイプを使用したいと考えています。SimpleSchema はクライアントのデータをチェックしますが、サーバー側でもスキーマに対してデータをチェックするにはどうすればよいですか? 新しいデータを追加する私の方法は次のとおりです。
meteor - Autoform:別のフィールドに応じてサブスキーマのフィールドを動的に表示および追加する方法は?
別のフィールドに応じてサブスキーマ (オブジェクト) のフィールドを動的に表示するための最良の方法は何ですか? 次の例では、ドキュメント (Schemas.Main) に Schemas.Items で定義された複数のアイテムを含めることができます。項目の入力に必要なフィールドは、選択したタイプによって異なります。
たとえば、ユーザーが type=="type1" を選択した場合、フィールド "type1_field1" および "type1_field2" に入力する必要があります。
ソリューションでは、おそらく autoForm を使用し、AutoForm.getFieldValue と afArrayField の設定フィールドを組み合わせる必要がありますね。多くの組み合わせを試しましたが、アイテムを追加する機能が失われるか (プラス記号がない)、別のアイテムを追加できません (つまり、すべてのアイテムがタイプ 1 です)。これを解決するためのヒントはありますか?