2015-04-04 78 views
-1

告诉我,我做错了什么。 在输出我得到的,我从这些数据Nativescript虚拟阵列

这里做什么错误的结论3个空行

我的建议是代码的例子

main.js

var observable = require("data/observable"); 
var virtualArrayModule = require("data/virtual-array"); 
var http = require("http"); 

var mainViewModel = new observable.Observable(); 
var array = new virtualArrayModule.VirtualArray(3); 

mainViewModel.tapAction = function() { 

array.on(virtualArrayModule.knownEvents.itemsLoading, function (args) { 
    http.getJSON("http://www.reddit.com/r/news.json?limit=" + args.count).then(function (r) { 

     var itemsToLoad = r.data.children.map(function (i) { 
      return i.data.title; 
     }); 

     array.load(args.index, itemsToLoad); 

    }, function (e) { 
     done(e); 
    }); 

}); 

mainViewModel.set("redditItems", array); 

}; 

exports.mainViewModel = mainViewModel; 

和main.xml

<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded"> 
<StackLayout> 
<Button text="Загрузить" tap="{{ tapAction }}" /> 
<ListView items="{{ redditItems }}"> 
    <ListView.itemTemplate> 
     <GridLayout columns="auto, *, auto" rows="auto, 25"> 
     <Label text="{{ title }}" textWrap="true" col="1" colSpan="2" minHeight="50" /> 
     </GridLayout> 
    </ListView.itemTemplate> 
</ListView> 
<Label text="{{ error }}" cssClass="message"/> 
</StackLayout> 
</Page> 

回答

0

在你的main.xml中你会t为redditItems中的每个项目显示属性“标题”作为标签的文本。

<ListView items="{{ redditItems }}"> 
    <ListView.itemTemplate> 
    <GridLayout columns="auto, *, auto" rows="auto, 25"> 
     <Label text="{{ title }}" textWrap="true" col="1" colSpan="2" minHeight="50" /> 
    </GridLayout> 
    </ListView.itemTemplate> 
</ListView> 

但在你的ListView的itemsLoading情况下,你只添加一个字符串数组redditItems。

var itemsToLoad = r.data.children.map(function (i) { 
    return i.data.title; 
}); 
array.load(args.index, itemsToLoad); 

的观点无关,表明因为没有一个“头衔”属性存在于redditItems数组中的项目。将上面的代码更改为以下代码以查看它是否有效(还没有自己测试过)。

var itemsToLoad = r.data.children.map(function (i) { 
    return i.data; 
}); 
array.load(args.index, itemsToLoad); 

现在的“头衔”属性应该是可在每个项目中的redditItems阵列和视图可以显示该属性的值。

+0

感谢您的回复,我改变了这个部分,但问题还没有解决:( – zverbeta 2015-04-30 17:29:52