2017-07-13 13 views
3

なぜAngular Schema Formにはjson形式とjson形式のスキーマが別々のものがありますか?フォーム内のプロパティの一部がスキーマ内に存在する可能性があり、逆も同様です。これは、スキーマ内のemailプロパティの両方のようです角度スキーマフォームはどのように機能しますか?

{ 
    "type": "object", 
    "title": "Comment", 
    "properties": { 
    "name": { 
     "title": "Name", 
     "type": "string" 
    }, 
    "email": { 
     "title": "Email", 
     "type": "string", 
     "pattern": "^\\[email protected]\\S+$", 
     "description": "Email will be used for evil." 
    }, 
    "comment": { 
     "title": "Comment", 
     "type": "string", 
     "maxLength": 20, 
     "validationMessage": "Don't be greedy!" 
    } 
    }, 
    "required": [ 
    "name", 
    "email", 
    "comment" 
    ] 
} 

:として

[ 
    "name", 
    "email", 
    { 
    "key": "comment", 
    "type": "textarea", 
    "placeholder": "Make a comment" 
    }, 
    { 
    "type": "submit", 
    "style": "btn-info", 
    "title": "OK" 
    } 
] 

とスキーマ:たとえば、schemaform.ioのウェブサイト上の簡単な例では、我々は次の形式を持っていますtitledescriptionは、スキーマと同じようにフォーム定義に入れることができます。誰かがフォームとスキーマの両方の意味を説明することはできますか?

答えて

0

JSONスキーマ

JSONスキーマは、IETF標準である(JSON-Schema docsからリンクされるように)(ASFは、の一部である)

JSONスキーマフォームORG はJSONスキーマに変更を加えることができません独自の標準です。 JSONスキーマは、この段階でというモデル/検証/ハイパーメディア定義形式のとして設計されています。

JSON Schemaのフォーム組織は、JSONスキーマの組織と直接議論であり、我々は最終的にから何かのように終わる可能性があるだけでなくJSON SchemaのUI標準を定義するために見えるように私はあまりにも今、その組織の一部です単に将来の、またはより詳細な標準でプロパティの衝突が発生しないようにする方法です。

今のところ、角度スキーマフォームがjsonFormから進化したやり方は、ドット表記キーやreadOnlyとreadonlyの使用のような書式と形式の間で同じ方法で使用できない同様の用語で混乱を招きます。

UIスキーマ

JSONスキーマを使用して多くの組織の必要性は、スキーマによって定義されるデータ形式を編集するためのUIを提示することで、このようにUIスキーマモデルが提示されるべき方法を定義します。スキーマの値をオーバーライドすることができるので、スキーマ内のすべての値を変更することはできませんが、大部分は変更できますが、フレームワーク内で定義されたテンプレートに基づいて追加のタイプが追加されます(将来、ウィジェットのような異なる用語に変更される可能性があります)。

UIスキーマは配列を使用して、フィールドの順序が期待どおりであることを保証し、JSONスキーマ定義内のデータのみからフォームフィールドを生成するキーを定義する機能も提供します。オーバーライドがまったく必要ない場合は、キーを使用せずにフォーム要素を生成するために、ワイルドカードや省略記号を使用することもできます。懸念

しようとすると、両者を組み合わせることではない理由の

分離は関心事の分離のために、UIスキーマは、本質的にビューコントローラの種類として機能しています。多くの企業アプリケーションでは、管理者が通常の従業員よりもデータを編集するためのアクセス権がある場合など、さまざまなビューで同じデータを使用します。そのたびにデータモデルを複製するのは意味がありません。

これは非常に基本的なフォームでは過度に思えるかもしれませんが、要件が拡大し、新しい機能が追加されてデータの新しいビューが必要な場合はわかりません。

モデル内に見つからないフォームで定義された属性を持つブラウザで状態情報をサポートする必要がしばしばあります。

開示:私は、執筆時点での角度スキーマフォームの管理者です。

関連する問題