enyo.app卡在创建功能中

时间:2015-09-28 06:33:32

标签: javascript enyo

这是我的代码

当我从我的应用程序中明确地调用getPreloadedAppListpreLoadedApp.getPreloadedAppList(successCallback1,failCallback1);, 我得到了nApps = 12的正确回复。

但是当我在enyo类的create函数中执行此操作时,我的程序就会卡在那里。

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 个答案:

答案 0 :(得分: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]);

}