2012-05-07 5 views
16

編集時にコンポーネントダイアログでデフォルトのチェックボックスをオンにしようとしています。ここでは、フィールドのプロパティは次のとおりです。the documentationは少しグラグラあるようCQ5のデフォルトチェックボックスのチェックボックス

jcr:primaryType: widget 
checked: true (boolean) *Documentation says this determines default checked status 
type: checkbox (string) *read this as a fix to making checkbox selections stick 
xtype: selection (string) 
name: ./foo (string) 
fieldValue: true (string) 

答えて

17

はい、それが見えます。私はいくつかの実験をした、そしてこの特性の組み合わせは、私の作品:

defaultValue (String) true 
fieldLabel (String) Foo Mode 
inputValue (String) false 
jcr:primaryType (Name) cq:Widget 
name (String) ./foomode 
type (String) checkbox 
xtype (String) selection 

DefaultValueプロパティは、キーのように見えます。

あなたはウィジェットではなく、プライマリタイプのウィジェットを持っていますか?これはブール型として保存されているように

+2

ありがとうございます。私はこのコンビネーションを自分で考案しませんでした。さあ、アドビ、あなたのドキュメントをより良く管理してください! –

+0

私はまったく同じ問題に直面し、不正確なCQドキュメントによって悪化しました。このチェックボックスの詳細を見ると、上記の組み合わせはDialogに "checked"チェックボックスをレンダリングすることに成功しますが、このチェックボックス要素を表すJCRプロパティを設定することはありません。つまり、このチェックボックスにあらかじめ作成された./foomodeプロパティはなく、ユーザーがダイアログにアクセスしてから変更を加えなくても「OK」ボタンを押すと作成されます。 –

+0

ノードのプロパティは、POSTリクエストによって作成されるまで作成されません。また、チェックボックスがチェックされていないと、チェックボックスがサブミットされないことに注意してください。これはCQの機能ではなく、HTML仕様であり、ブラウザによって実装されています。チェックボックスがチェックされているかどうかにかかわらずノードプロパティを作成するには、SlingPostServletの@UseDefaultWhenMissing接尾辞を使用します。 Apache Slingのドキュメント(https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html#usedefaultwhenmissing)を参照してください。 – nateyolles

5

...

<nodeName 
jcr:primaryType="cq:Widget" 
fieldLabel="check this nodename" 
name="./nodeName" 
defaultValue="{Boolean}false" 
type="checkbox" 
xtype="selection" /> 

<nodeNameHint 
    jcr:primaryType="cq:Widget" 
    ignoreData="{Boolean}true" 
    name="./[email protected]" 
    value="Boolean" 
    xtype="hidden"/> 
1

確認の既定値でチェックボックスを設定し、 JCRでのブール型プロパティタイプ(というよりも文字列)としてプロパティを保存するには、次クラシックUIの設定を使用します。

<myCheckbox 
    jcr:primaryType="cq:Widget" 
    fieldLabel="My Checkbox" 
    name="./myCheckbox" 
    value="true" 
    defaultValue="true" 
    checkboxBoolTypeHint="{Boolean}true" 
    type="checkbox" 
    xtype="selection"/> 

または花崗岩のタッチUIで次の設定を使用します。

<myCheckbox 
    jcr:primaryType="nt:unstructured" 
    sling:resourceType="granite/ui/components/foundation/form/checkbox" 
    text="My Checkbox" 
    name="./myCheckbox" 
    value="true" 
    checked="true"/> 
<myCheckboxType 
    jcr:primaryType="nt:unstructured" 
    sling:resourceType="granite/ui/components/foundation/form/hidden" 
    name="./[email protected]" 
    value="Boolean"/> 

http://www.nateyolles.com/blog/2015/11/aem-checkboxes-using-sling-post-servletに詳細な書き起こしとデモがあります。