【问题标题】:Add TableViewRows from array in Appcelerator Alloy从 Appcelerator Alloy 中的数组添加 TableViewRows
【发布时间】:2014-05-17 23:19:42
【问题描述】:

我是使用 Appcelerator 的新手,并且在执行应该相对简单的任务时遇到了一些困难。我正在尝试检索 RSS 提要,然后在 TableView 中显示每个条目;抓取条目工作正常,但我似乎无法弄清楚如何将结果传递给 TableView 元素。

我找到了很多针对 Titanium(通常是 2 岁以上)的教程,但我真的很想使用 Alloy。我学习了如何迭代模型中的项目,但在这种情况下,我们正在获取 RSS 数据。

这是我目前的代码:

index.js

var data =[];
var x = 0;
var xhr = Ti.Network.createHTTPClient();
xhr.open("GET", "https://somewhere.org/feed");
xhr.onload = function() {
    try {
        var doc = this.responseXML.documentElement;
        var items = doc.getElementsByTagName("entry");
        var x = 0;
        for(var c = 0; c<items.length;c++) {
            var item = items.item(c);
            var name = item.getElementsByTagName("name").item(0).text;
            var row = {'name' : name};
            data[x++] = row;
        }
    } catch(E) {
        alert(E);
    }
};
xhr.send();
$.index.open();

index.xml

<Alloy>
<Window class="container">
    <TableView>
        <TableViewRow title="{name}"></TableViewRow>
    </TableView>
</Window>

任何帮助将不胜感激。

【问题讨论】:

    标签: appcelerator appcelerator-mobile titanium-alloy


    【解决方案1】:

    在 Codestrong 示例中,他们 (Appcelerator) 似乎在控制器代码中创建了行。因此,tableview 在 xml 中定义,并带有一个 id 来引用它。然后通过循环创建 tableviewrows 并创建一个数组。最后将表格的数据设置为tableviewrows数组。

    我喜欢参考 Codestrong 示例,因为您可以从适合您设备的应用商店获取它,然后从 github 获取它的源代码。很高兴跟随并看到它的功能,然后观察它背后的代码。 https://github.com/appcelerator/Codestrong

    在 lib/ui 中,为应用程序的各个部分定义了 tableviewrows。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      相关资源
      最近更新 更多