2016-09-27 6 views
0

私はsap.m.Listを持っていて、モデルにバインドされたアイテムの集合体を持っています。SAPUI5集約バインディングにタイミングまたはレンダリングの遅延がありますか?

リスト内の1つの項目に新しいデータをロードし、モデル内の項目を新しい項目に置き換えると、集計が自動的に更新されます(注:バックエンドからのデータがすでに受信されています。 )。

これは私のリストの簡略図である:

:は、選択した項目を集中ん

updateSingleListItemInModel() 
focusActiveItem(oNewItem); 

var oList = new sap.m.List({ 
     items: { 
     path: "oModel>/resource/list", 
     factory: function(sId, oContext) { 
      var oItem = new sap.ui.jsfragment("fragments.myItem", oController); 
      oItem.iId = oContext.getProperty("id"); 
      return oItem; 
     } 
     } 
    }); 

function updateSingleListItemInModel(oNewItem) { 
     //custom function which overrides a single list entry 
     } 

    function focusActiveItem() { 
    var oItem = oList.getSelectedItem(); 
    if (oItem) { 
     oItem.focus(); 
     } 
    } 

次はない選択した項目を集中してい

updateSingleListItemInModel() 
setTimeout(function() { 
    focusActiveItem(oNewItem); 
      }, 5); 

唯一の違いは5ms遅延であり、その間にバックエンドのロードが発生しないことに注意してください。 SAPUI5集約バインディングに遅延がありますか(この場合、0〜5ミリ秒の間)ですか?またはレンダリングが遅すぎるのですが、アイテムがまだレンダリングされていないためにフォーカスが合わないのですか?それとも何か他に起こっていることはありますか?

答えて

0

次のことを試してみて、それが動作するかどうかを教えてください:

oList.addEventDelegate({ 
    onAfterRendering: function(){ 
    var oItem = oList.getSelectedItem(); 
    if (oItem){ 
     oItem.focus(); 
    } 
    } 
}, this); 
関連する問題