Data binding 钛合金模板绑定,无模型和集合?

Data binding 钛合金模板绑定,无模型和集合?,data-binding,templating,titanium-alloy,Data Binding,Templating,Titanium Alloy,在本例中,我有一个很长的静态数据列表,一个国家列表,以及一个下拉列表中的州/省 因为这是静态数据,所以使用模型和集合不仅看起来有点过火,而且在我的实验中,使用这么多数据的速度也非常慢 我想做的是一个简单的模板绑定,而不必处理模型和集合。只需获取一个对象数组,并在其上循环,在我的视图中绑定必要的XML 考虑到有这么多JS模板引擎,我认为这在Tianium中是可能的?我的搜索没有任何帮助。只要使用具有适当配置的ItemTemplate的listView,就可以了。Alloy中的数据绑定与主干模型和集

在本例中,我有一个很长的静态数据列表,一个国家列表,以及一个下拉列表中的州/省

因为这是静态数据,所以使用模型和集合不仅看起来有点过火,而且在我的实验中,使用这么多数据的速度也非常慢

我想做的是一个简单的模板绑定,而不必处理模型和集合。只需获取一个对象数组,并在其上循环,在我的视图中绑定必要的XML


考虑到有这么多JS模板引擎,我认为这在Tianium中是可能的?我的搜索没有任何帮助。

只要使用具有适当配置的ItemTemplate的listView,就可以了。

Alloy中的数据绑定与主干模型和集合对象紧密耦合。在Alloy视图XML文件中的元素上声明dataCollection属性时,代码生成器将创建一个循环,该循环在该属性指定的集合中运行,为集合中的每个模型构造一个新的视图对象,并设置视图及其子视图的相应属性。您可以通过打开项目中Resources文件夹下生成的代码来了解其工作原理

在主干集合中循环应该不会比在普通数组中循环慢太多,因此我猜您看到的性能不佳是因为您使用了一个主干集合来加载集合,如示例代码和文档中所示。但是,如果您的数据在运行时不会更改,则可以创建一个普通主干集合并调用该集合的重置方法来执行数据的大容量设置,从而避免通过持久性适配器获取数据的所有相关开销。以下是从中摘录的内容,展示了如何做到这一点:

// alloy.js
Alloy.Collections.heroes = new Backbone.Collection();
Alloy.Collections.heroes.reset([
    { name: 'Ironman' },
    { name: 'Superman' },
    { name: 'Thor' },
    { name: 'Captain America' },
    { name: 'Hulk' },
    { name: 'Green Lantern' },
    { name: 'Punisher' },
    { name: 'Spiderman' },
    { name: 'Wolverine' },
    { name: 'Cyclops' }
]);
创建集合后,可以将其绑定到视图:

<TableView dataCollection="heroes">
  <TableViewRow title="{name}"/>
</TableView>

看看Github上的Alloy repo,看看如何绑定到各种集合视图的示例:。

我意识到我可以使用一个好的ole风格的工厂,在我的控制器中以编程方式创建元素,只是想知道是否有像模板选项这样更灵活的东西。