Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ListView不显示所有ListItems_Javascript_Listview_Titanium_Titanium Alloy - Fatal编程技术网

Javascript ListView不显示所有ListItems

Javascript ListView不显示所有ListItems,javascript,listview,titanium,titanium-alloy,Javascript,Listview,Titanium,Titanium Alloy,在钛合金移动应用程序项目中: var apptList = Ti.UI.createListView(); var calendar = Ti.UI.createListSection({ headerTitle: 'Appointments'}); var appts = []; var apptsData = []; //format: null, Startdate, Enddate, Location, AppoinmentID (repeats) apptsData = parse

在钛合金移动应用程序项目中:

var apptList = Ti.UI.createListView();
var calendar = Ti.UI.createListSection({ headerTitle: 'Appointments'});
var appts = [];
var apptsData = [];

//format: null, Startdate, Enddate, Location, AppoinmentID (repeats)
apptsData = parseDates(this.responseText);
Ti.API.info(apptsData.toString());
我的parseDates函数以数组的形式返回这些值,下面显示了toString。它们不都是日期,这没关系

,2013-09-30T00:00:00Z,2013-09-30T00:13:00Z,Dayton Ohio,1,,2015-10-05T00:00:00Z,2015-10-30T00:13:00Z,New York,2,,1992-10-07T00:00:00Z,1992-10-07T00:13:00Z,Demoines,3,,2013-09-30T00:00:00Z,2013-09-30T00:13:00Z,Bellbrook Ohio,4,
无论出于何种原因,我都无法在ListView中显示这些值。我甚至无法访问数组中超出这些值的任何部分

此外,按某些值递增会使我的应用程序崩溃无错误消息,有些则不会。例如,i+=5崩溃,i+=6不会使我访问不存在的数据或其他内存问题

         for(var i = 0; i <= 20; i += 5){
            //skips null
            Ti.API.info(apptsData[i + 1]);
            appts.push({properties: {title: apptsData[i + 1]}});    //Start Date
            Ti.API.info(apptsData[i + 2]);
            appts.push({properties: {title: apptsData[i + 2]}});    //End Date
            Ti.API.info(apptsData[i + 3]);
            appts.push({properties: {title: apptsData[i + 3]}});    //Location

         }
但在那之后,我只得到空值

        Ti.API.info("length: " + apptsData.length);
长度返回6,但应更高

下面我尝试将listview/节添加到我的窗口中

        var calendar = Ti.UI.createListSection({ items: appts });
        apptList.sections = [calendar];
        $.calendarWindow.add(apptList);
如果从parseDates返回的apptsData.length后面给出的是6,而不是您期望的数字,那么显然this.responseText或parseDates有问题,并且该问题与ListView无关


使用console.infoJSON.stringifyapptsData,null',可以更好地查看数组,或者像Martin说的那样,逐步检查值。

好的,解决方案比我希望的要简单一些

从本质上讲,parseDates函数中发生的事情就是递归地将数组添加到一起,以获得所需的所有信息。不幸的是,我使用的是array.pushotherarray而不是array.concatotherarray


我怀疑这个答案是否能帮助其他人解决问题,但如果您有类似于我上面提到的症状,请务必查看此解决方案。

使用调试器逐步检查应用程序,并在逐步检查时不断检查apptsData值。我知道有些人喜欢依赖Ti.API.info进行调试。这里可能没有足够的源代码来确定问题。我知道在一些项目中,很难给出正确数量的代码,但是当所有代码都像这样被切碎时,你真的无法帮助确定哪里出了问题。是的,我正试图这样做。无论出于何种原因,我的调试器都不会显示变量值,也不会在断点处停止。但我认为这是一个完全不同的问题。如果我修复了它并解决了我的问题,我一定会发布更新。
        var calendar = Ti.UI.createListSection({ items: appts });
        apptList.sections = [calendar];
        $.calendarWindow.add(apptList);