2015-09-28 2 views
0

Вот мой кодenyo.app заклинивания в функции создание

Когда я звоню Явно getPreloadedAppList из моего приложения, как preLoadedApp.getPreloadedAppList(successCallback1,failCallback1);, я получаю надлежащий ответ как nApps = 12.

Но когда я делаю это в create Функция enyo kind, моя программа застревает там.

enyo.kind({ 
name:'PreApp', 
PreloadedApp : [], 
nApps : 0, 
Response:function(){ 
    this.onSuccess=''; 
    this.onFailure=''; 
    this.id = 0; 
}, 
create: function(){ 
     this.inherited(arguments); 
     this.init(); 
}, 
getPreloadedAppList: function(getListSuccessCallback,getListFailCallback){ 
    var param = new this.Response(); 
    param.onSuccess = getListSuccessCallback; 
    param.onFailure = getListFailCallback; 
    hcap.preloadedApplication.getPreloadedApplicationList(param); 
}, 
launchPreloadedApp: function(launchSuccessCallback,launchFailCallback,id){ 
    var param = new this.Response(); 
    param.id = id; 
    param.onSuccess = launchSuccessCallback; 
    param.onFailure = launchFailCallback; 
    hcap.preloadedApplication.launchPreloadedApplication(param); 
}, 
init : function(){ 
    var suuccessCB = function(param){ 
     this.nApps = param.list.length; 
     for (var i = 0; i < this.nApps; i++) { 
      this.PreloadedApp.push(param.list[i]); 
     } 
    } 
    var failureCB = function(param){ 
     alert("Failure " + param.errorMessage); 
    } 
    this.getPreloadedAppList.apply(this,[suuccessCB,failureCB]); 
} 
}); 

Что мне не хватает?

ответ

1

Я предполагаю, что вам нужно, чтобы связать вашу функцию successCB так:

init : function(){ 
var suuccessCB = this.bindSafely(function(param){ 
    this.nApps = param.list.length; 
    for (var i = 0; i < this.nApps; i++) { 
     this.PreloadedApp.push(param.list[i]); 
    } 
}) 
var failureCB = this.bindSafely(function(param){ 
    alert("Failure " + param.errorMessage); 
}) 
this.getPreloadedAppList.apply(this,[suuccessCB,failureCB]); 

}

Смежные вопросы