2つのXMLフラグメントを使用します.1つは表示データ用、もう1つは編集用です。Fiori Launchpadから戻るとフラグメントが破棄されますか?
私はこの方法を使用してフラグメントを切り替える:
onAfterRendering : function() {
this._toggleForm("Display");
},
_toggleForm : function(sFragmentName) {
var oPage = this._detailPage;
//my detail page has an object header, a fragment form and a form in detail view.
if(oPage.getContent().length > 2) {
oPage.removeContent(1);
}
oPage.insertContent(this._getFormFragment(sFragmentName), 1);
},
_formFragments: {},
_getFormFragment: function (sFragmentName) {
var oFormFragment = this._formFragments[sFragmentName],
oView = this.getView();
if (oFormFragment) {
return oFormFragment;
}
oFormFragment = sap.ui.xmlfragment(oView.getId(), "namespace.fragment." + sFragmentName, this);
oView.addDependent(oFormFragment);
return this._formFragments[sFragmentName] = oFormFragment;
}
すべてが正常に動作します...しかし、私はフィオーリ・ランチパッドからアプリを呼び出す場合、最初の呼び出しはOKですが、二度目は私にこれを与えますinsertContent
のエラー:
ID XXX-detail - generalのオブジェクトは破棄され、もう使用できません。
なぜフォーム要素に編集可能な状態を使用しないのですか?断片を破壊して切り替えるよりも簡単です。そうは思わないでしょうか? –
@AndriiNaumovych、あなたの提案のおかげで、私は私の答えで私の理由を更新した、何か間違いがある場合、あなたはそれを修正することを歓迎する以上です。 – Tina