エディタがいくつかの値(この場合は過去の日付フィールド)を持つコンポーネントを保存しようとするたびに表示されるモーダルポップアップがあります。アンギラ - ポップアップからフィールドの値を更新していますか?
このポップアップでは、いくつかのオプション(デフォルトの「共有アイテムを開く」ダイアログに似ています)とOK/Cancelボタンのコンボを表示します。キャンセルすると「キャンセル」イベントが発生し、エディタは編集画面に戻ります。 "OK"では、フィールドの値をエディタで選択したものと一致するように変更して保存します。
FieldBuilderでのアプローチを使用しようとしましたが、サンプルBorisはthis other topicに記載されていますが、ポップアップダイアログからフィールドにアクセスできません。
モーダルポップアップからアイテムのxmlを変更したり、ページを変更したりする方法についてのご意見はありますか?
EDIT:コードgetControlForFieldNameで使用
function getControlForFieldName(name) {
var fieldBuilder = $display.getView().properties.controls.fieldBuilder;
var fieldsContainer = fieldBuilder.properties.input;
var fieldsNode = fieldsContainer.getElement();
var fieldContainer = $dom.getFirstElementChild(fieldsNode);
while (fieldContainer) {
var labelNode = $dom.getFirstElementChild(fieldContainer);
var fieldNode = $dom.getNextElementSibling(labelNode);
var control = fieldNode.control;
if (control.getFieldName() == name) {
return control;
}
fieldContainer = $dom.getNextElementSibling(fieldContainer);
}
}
EDIT#2フランクのアドバイス、およびハイメ&フランクオフラインからいくつかの助けを借りた後、私は次のようにそれが動作するようになった
:
- ポップアップはCommand Extensionから呼び出されます(私の場合は& Close)
- command.jsは、私がイベントハンドラに選択した項目を(それがキーワードIDです)を通過しています(== OKを押した)私のポップアップで
$evt.addEventHandler(p.dialogPopup, "submit",
this.getDelegate(this._onPopupSubmit));
を「提出」に呼び出されるイベントハンドラを指定します:
this.fireEvent("submit", { id: select.options[select.selectedIndex].value });
とすぐに戻ってイベントハンドラ_onPopupSubmit(e)
私はちょうど、e.data.id読んでこのキーワードをロードし、ID &タイトルなどのプロパティを取得し、item.setMetadataを使用してアイテムのメタデータを更新中(「新更新された値を持つメタデータ ")。
シンプル:)
ポップアップに表示されているコードを共有できますか?ほとんどの場合、あなたはどこかに「親」がありません。 –