我是Titanium的新手,所以请原谅我缺乏理解。
即使我正在使用sdk版本3.2(在我的tiapp.xml中有sdk-version:3.2.0.v201308011624),当我尝试使用上面的xml视图时,我收到此错误: [ERROR] [V8Exception(615)]合金/控制器/ feed.js发生异常:22:未捕获TypeError:对象#没有方法'createTemplates'
我删除了所有代码,以便feed.js文件只是:
function loadMoreBtnClicked(_event) {
alert('not implemented yet');
}
function createListView(_data) {
// this is pretty straight forward, assigning the values to the specific
// properties in the template we defined above
var items = [];
for (var i in _data) {
// add items to an array
items.push({
template : "template1", // set the template
textLabel : {
text : _data[i].name // assign the values from the data
},
pic : {
image : _data[i].pic_square // assign the values from the data
}
});
}
// add the array, items, to the section defined in the feed.xml file
$.section.setItems(items);
}
alert('feed loaded');
XML在feed.xml中,如下所示:
<Alloy>
<Window class="container" formFactor="handheld">
<ListView id="list" defaultItemTemplate="template1">
<Templates>
<ItemTemplate name="buttonItem" height="Ti.UI.SIZE">
<!-- will use this in the next blog post -->
<Button id="loadMoreBtn" onClick="loadMoreBtnClicked">Load More</Button>
</ItemTemplate>
<!-- main template for displaying the list items -->
<ItemTemplate id="template1" name="template1" class="template1">
<ImageView id="pic" bindId="pic" class="imageThumb"/>
<View id="textContainer">
<Label id="textLabel" bindId="textLabel" class="title"/>
</View>
</ItemTemplate>
</Templates>
<!-- we only have one section and the items are contstucted using template1 -->
<ListSection id="section" >
<ListItem template="template1" />
</ListSection>
</ListView>
</Window>
</Alloy>
我仍然收到错误(仅使用XML,除了正在运行的警报之外没有实际的控制器代码)。如果我从feed.xml文件中提取ListView XML,则会触发警报,当我将ListView XML放回时,我得到上面的错误。
我正在尝试使用此示例中的代码: https://gist.github.com/aaronksaunders/5896390 但是我真的不知道我错过了什么?
谢谢! -James
答案 0 :(得分:0)
发现问题是什么,我的问题与没有支持XML中的ListView模板所需的更新合金版本有关。我需要在Windows的命令行运行它:“npm install -g alloy@1.2.0-alpha”(不带引号)。之后,我能够使用XML中的ListView模板,如上所示。