使用photo_id从ACS获取帖子对象

时间:2015-01-16 11:51:31

标签: titanium appcelerator

我正在开发一个从ACS(post对象)获取数据的应用程序。 在我的应用程序中有按钮,当用户单击该按钮时,它会获取帖子数据。 在每个帖子中都有一个photo_id,它允许我从云端获取照片网址。 但是有一个问题,它有一个回调函数,当回调发生时,为时已晚。

无论如何,下面的代码只显示带照片的最后一个帖子,第一篇帖子没有照片。 (到目前为止只有2个帖子对象。)

我认为问题出在回调中,但我似乎无法修复它。

希望你们能帮助我,提前谢谢!

这是我的代码:

function getCarsClick() {


Cloud.Posts.query({
    page: 1,
    per_page: 20

}, function (e) {
    if (e.success) {

        var tableData = [];


        for (var i = 0; i < e.posts.length; i++) {


            var post = e.posts[i];


            var row = Titanium.UI.createTableViewRow();

            var title = Titanium.UI.createLabel({
            text:post.title,
            font:{fontSize:18,fontWeight:'bold'},
            color:'#ef349d',
            width:'auto',
            textAlign:'left',
            top:2,
            left:40,
            height:30
            });

            var subtitle =  Titanium.UI.createLabel({
            text:post.content,
            font:{fontSize:12,fontWeight:'normal'},
            color:'#000000',
            width:'auto',
            textAlign:'left',
            bottom:10,
            left:60,
            height:32
            });



            row.add(title);
            row.add(subtitle);
            row.hasChild=true;
            row.height = 80;
            row.selectedBackgroundColor = '#ef349d';




            Cloud.Photos.show({
                photo_id: post.photo_id
            }, function (e) {
                if (e.success) {
                    var photo = e.photos[0];


                    var img1 = Ti.UI.createImageView({image:photo.urls.square_75,width:30,height:30,left:2, top:2});
                    row.add(img1);

                } else {
                    alert('Error:\n' +
                        ((e.error && e.message) || JSON.stringify(e)));

                }


            });


            tableData.push(row);


        }


        //add table data
        $.tableview1.setData(tableData);


    } else {
        alert('Error:\n' +
            ((e.error && e.message) || JSON.stringify(e)));
    }
});

}

1 个答案:

答案 0 :(得分:1)

如果您使用提供的默认参数将照片传入帖子,则图片应默认返回,并且不需要您进行额外的API调用以获取照片。

我还建议你是否刚刚开始使用Alloy,更重要的是使用ListViews而不是TableView

https://github.com/aaronksaunders/AppC-Alloy-Book-Misc