2017-03-28 8 views
0

私のフィールドの提案を表示するには、ws restに基づいて動的オートコンプリートを使用する必要があります。私はそれを使用しましたが、うまくいかず、提案のリストを更新しませんでした。例:Orbeonフォームでダイナミックオートコンプリートを設定する方法は?

<fr:autocomplete 
     id="control-3-control" 
     appearance="minimal" 
     labelref="@label" 
     resource="http://127.0.0.1/api/ws/pays/all" 
     bind="control-3-bind"> 

    <xf:label ref="$form-resources/control-3/label"/> 
    <xf:hint ref="$form-resources/control-3/hint"/> 

    <xf:alert ref="$fr-resources/detail/labels/alert"/> 
    <xf:itemset ref="./_"> 
     <xf:label ref=".//libelle"/> 
     <xf:value ref=".//id"/> 
    </xf:itemset> 
</fr:autocomplete> 

そして、これはスクリーンショットです:

enter image description here

答えて

0

ユーザーが入力した値に基づいて、「フィルタリング」を行うには、オートコンプリートを呼び出しているサービスの責任です。ただし、フィールドの現在の値を指定しないと、これを行うことはできません。そのためには、URLのどこかに{$fr-search-value}を使用してください。以下のようなもの:

http://127.0.0.1/api/ws/pays/all?search={$fr-search-value} 

そしてもちろん、その後、あなたのサービスは、アカウントにsearchリクエストパラメータの値を取る必要があります。オートコンプリートコンポーネントは、ユーザーがフィールドに入力するのに応じて、必要に応じて自動的にサービスを繰り返し呼び出します。

これにより、可能な値のセット全体をOrbeonフォームに返すことなく、大きなデータセットを検索することができます。

+0

答えていただきありがとうございます。そのようなURLに変更しました。http://127.0.0.1/api/cpAutocomplete/findCountry/{$fr-search-value}、オートコンプリートフィルタリングはうまくいきますが、クリックすると検索された項目では、フィールドは1秒で満たされ、その後はフィールドが空になりました(値が選択されていません)。この現象についてご存じですか?私は何を追加する必要がありますか? – Lebki

+0

あなたのサービスへのどのような呼び出しが行われているか確認できますか?ユーザーが値を選択した後、その値でサービスが呼び出されていて、サービスが何も返されないかどうかは疑問です。 – avernet

+0

Evernetありがとう、それは働いた! – Lebki

関連する問題