$(function () { pageContext.i18n.modTalk = 'moderation talk'; pageContext.i18n.replyToComment = 'Reply'; pageContext.i18n.modTalkEmpty = 'moderation talk is empty'; pageContext.url.getModTalk = "/comments/%25ID%25/listModTalk.json"; pageContext.url.possibleCommentRecipients = "/comments/%ID%/possibleRecipients.json"; pageContext.url.commentEdit = '/comments/%25ID%25/edit.html'; pageContext.url.commentView = '/comments/%ID%/view.html'; pageContext.i18n.commentVisibility = { 'full': 'Viewable by all users', 'op': 'Viewable by the original poster', 'mod': 'Viewable by moderators', 'opAndMod': 'Viewable by moderators and the original poster', 'other': 'Advanced visibility', 'dialogTitle': 'Comment visibility', 'selectGroups': 'Visible to groups', 'selectOther': 'Other recipients', 'selectOriginalPoster': 'Original poster', 'selectModerators': 'Moderators', 'selectAssignees': 'Asked to answer users' }; pageContext.i18n.commentMenuLabels = { 'comment-edit': 'comments.menu.edit', 'comment-delete': 'comments.menu.delete', 'comment-convert': 'comments.menu.convert' };pageContext.i18n.answer= { bestAnswer: 'Best Answer', controlBar : { accept: 'Accept', unaccept: 'Unaccept', acceptCommand: 'Accept this answer as correct', cancelAcceptedCommand: 'Remove this answers accepted status' } }; window.croles = { u: false, op: false, m: false, og: false, as: false, ag: false, dc: false, doc: false, eo: false, ea: false }; tools.init({ q: { e: false, ew: false, eo: false, r: false, ro: false, d: false, dow: false, fv: false, c: false, co: false, p: false, tm: false , ms: false, mos: false }, n: { f: false, vf: false, vfo: false, vr: false, vro: false, c: false, co: false, vu: false, vd: false, w: false, wo: false, l: false }, c: { e: false, eo: false, d: false, dow: false, ta: false, tao: false, l: false }, a: { e: false, ew: false, eo: false, d: false, dow: false, a: false, aoq: false, ao: false, tc: false, tco: false, p: false, tm: false }, pc: croles }, { tc: true, nsc: true }); commandUtils.initializeLabels(); }); Skip to Content
avatar image
Former Member

How to solve attachRequestCompleted event getting called infinite in odatamodel v.2 ?

onPressBtn : function(){
	var oModel = this.getModel();
	var oModel2 = this.getModel();
	
	oModel.read("/Orders",{
		success : function(oData){
			console.log("Orders");
			console.log(oData.results);
		},
	        error : function(oData){
		        console.log(oData);
		});
					
		oModel.attachRequestCompleted(function(oData){
		     oModel2.read("/Employees",{
			success : function(oData){
			    console.log("Employees");
			    console.log(oData.results);	
		        },
			error : function(oData){
			    console.log(oData);	
			}
		      });
		});
},
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Feb 19, 2017 at 03:16 AM

    Hello Siddharth,

    As expected the oModel2.attachRequestCompleted() gets into infinite loop. Is there a specific reason you place that in event handler of request completed ??

    onPressBtn : function()
    { 
       var oModel = this.getModel(); 
       var oModel2 = this.getModel(); 
       oModel.read("/Orders",
                  { 
                      success : this.readOrders.bind(this), 
                      error : function(oData){ console.log(oData); }); 
    },
    readOrders : function(oData,oResponse){
        this.getModel().read("/Employees",
              { success : function(oData){ 
                      console.log("Employees"); 
                       console.log(oData.results);	
              }, error : function(oData){ console.log(oData);	} });
    },
    

    This ensures that the second call happens on the success of first call. Does this handle your scenario?

    Thanks and Regards,

    Veera

    Add comment
    10|10000 characters needed characters exceeded