【问题标题】:IBM Worklight 6.0 - Getting "Uncaught type error cannot call method 'initCollection' of undefined"IBM Worklight 6.0 - 获取“未捕获的类型错误无法调用未定义的方法 'initCollection'”
【发布时间】:2013-10-11 08:28:07
【问题描述】:

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

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

未捕获的类型错误:无法调用未定义的方法“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);

}

【问题讨论】:

    标签: ibm-mobilefirst jsonstore


    【解决方案1】:

    执行以下操作:

    1. 删除window.onload = createCollection;
    2. wlCommonInit() 内添加createCollection();

    顺便说一句,logMessage 会产生错误。应该改成WL.Logger.debug(你已经在代码中使用了...)。


    请查看IBM Worklight Getting Started training material。不要跳过。

    【讨论】:

    • 它现在似乎工作了,控制台不再显示错误但对话框仍然无法工作。 JSONStore 仅适用于 iOS 和 Android 环境,在浏览器中我无法显示它是否有效,对吧?我还有一个问题:何时调用wlCommonInit()?我必须在其中放置哪一部分代码?
    • 正如我所写,删除“window.onload = createCollection;”,然后粘贴到 wlCommonInit() 函数“createCollection();”中。我可以看到一个对话框。 wlCommonInit() 在应用程序准备就绪时启动。请阅读 IBM Worklight 入门培训材料。
    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 2013-08-31
    • 2011-11-12
    • 2013-09-14
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多