Ibm mobilefirst IBM Worklight 6.0-获取;未捕获类型错误无法调用方法';initCollection';“未定义”的定义;

Ibm mobilefirst IBM Worklight 6.0-获取;未捕获类型错误无法调用方法';initCollection';“未定义”的定义;,ibm-mobilefirst,jsonstore,Ibm Mobilefirst,Jsonstore,我正在使用Worklight构建一个使用本地存储的应用程序。我在common/js/myApp.js中声明了一个函数createCollection() 但是,当我在浏览器模拟器上运行它时,控制台JavaScript显示: 未捕获的TypeError:无法调用未定义的方法“initCollection” 有什么建议吗 我的JavaScript: function wlCommonInit(){ // Common initialization code goes here } // inizi

我正在使用Worklight构建一个使用本地存储的应用程序。我在common/js/myApp.js中声明了一个函数
createCollection()

但是,当我在浏览器模拟器上运行它时,控制台JavaScript显示:

未捕获的TypeError:无法调用未定义的方法“initCollection”

有什么建议吗

我的JavaScript:

function wlCommonInit(){
// Common initialization code goes here
}

// inizializzazione json
window.onload = createCollection;

var isOpen = true;
var menuboxw = $("#menubox").css("width");
$("#contentbox").css("left",menuboxw);
var headerh = $("#header").height();
$("#contentbox").css("top", headerh);
$("#menu_btn").click(function(){menu()});

// apertura/chiusura menu principale
function menu() {
if(isOpen){
    $('#contentbox').animate({ left: -5 }, 1);
    $("#menubox").css("visibility", "hidden");
    isOpen = false;
}
else{
    $('#contentbox').animate({ left: menuboxw }, 1);
    $("#menubox").css("visibility", "visible");
    isOpen = true;
}
}

// creazione collection 'canti' e 'categorie'
function createCollection(){

WL.Logger.debug("Called createCollection");
WL.SimpleDialog.show("Message", "createCollection called", [{text: "Ok"}]);

var collectionCanti = "canti";
var searchFieldsCanti = {titolo: "string", autore: "string", id_categoria: "string", testo: "string"};
var collectionCategorie = "categorie";
var searchFieldsCategorie = {titolo: "string", attiva: "number"};

var success = function(data){
            logMessage("Collection created successfully " + data);
};

var failure = function(data){
            logMessage("Collection doesn't created " + data);
};

var options = {onSuccess: success, onFailure: failure};

canti = WL.JSONStore.initCollection(collectionCanti, searchFieldsCanti, options);
categorie = WL.JSONStore.initCollection(collectionCategorie, searchFieldsCategorie, options);

}
请执行以下操作:

  • 删除
    window.onload=createCollection
  • 添加
    createCollection()内部
    wlCommonInit()
  • 顺便说一句,
    logMessage
    会产生错误。可能应该更改为
    WL.Logger.debug
    (您已经在代码中使用了它…)



    请过目一下。禁止跳过。

    现在似乎可以工作了,控制台不再显示错误,但对话框仍然不工作。JSONStore仅在iOS和Android环境下工作,在浏览器中我无法显示它是否工作,对吗?我还有一个问题:何时调用
    wlCommonInit()
    ?我必须在其中放置哪部分代码?正如我所写的,删除“window.onload=createCollection;”,并粘贴到wlCommonInit()函数“createCollection();”中。我可以看到一个对话框。wlCommonInit()在应用程序准备就绪时启用。请阅读IBM Worklight入门培训资料。