2014-03-03 46 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(); 
相關問題