2014-03-03 38 views
4

在合金文档中,它提到您可以拥有一个集合的单例或实例。您可以定义一个方法或使用实例标签另一:Titanium中的集合单例或实例有什么区别?

<Alloy> 
    <Collection id="localLibrary" src="book" instance="true"/> 
    <Window> 
     <TableView id="table" /> 
    </Window> 
</Alloy> 

我明白一个单身VS实例背后的总体思路...但我不明白揭露的一种方式的直接的好处/应用程序或其他的控制器。

具体来说,就是这个控制器代码之间的区别:

var library = Alloy.Collections.book; 
library.fetch(); 

这个控制器代码:“抢仅此一”是不是说“抓住所有”,而不是

var library = $.localLibrary; 
library.fetch(); 

任何澄清将是伟大的,tia。

回答

3

区别在于Alloy.Collections.instance("book")将创建一个全局单例实例(或者返回一个现有的...),这意味着您将能够在所有控制器中使用Alloy.Collections.book来访问它。你可以用Models做完全一样的事情。

你为什么要这样做?我认为这是非常有用的,如果你可以访问,并与已装入例如在TableView中的第一个窗口,而你是在子窗口某处的数据操纵...

全局访问辛格尔顿:

var library = Alloy.Collections.book; // <Collection src="book"/> 
    library.fetch(); 

本地实例:

var library = $.localLibrary; // <Collection id="localLibrary" src="book" instance="true"/> 
    library.fetch(); 
相关问题