我在Titanium Alloy中创建了一个新的控制器(search.js
),我在其中引用了我的一个集合:
search.js
var searchResults = Alloy.Collections.searchResults;
然后在我看来(search.xml
)我创建了一个TableView,并添加了dataCollection属性:
search.xml
<TableView id="resultsTable" dataCollection="searchResults">
<TableViewRow title="{name}" />
</TableView>
在我的控制器中,当用户进行搜索时,此集合将通过在线API填充数据。在此代码中,results
是一个包含所有数据的JSON对象:
search.js
_.each(results, function (item) {
var beer = Alloy.createModel('searchResults', item);
searchResults.push(beer);
});
当我运行我的应用程序时,收到以下错误消息:
&#34;&#39;未定义&#39;不是一个对象(评估&#39; __ alloyId60.on&#39;)&#34;
我不知道我哪里出错了,我错过了什么吗?
答案 0 :(得分:2)
我通过在alloy.js
文件中定义集合的全局实例来修复此错误:
Alloy.Collections.searchResults = Alloy.createCollection('searchResults');
我是在Appcelerator开发者论坛上的 this answer 找到的。