钛合金ListView XML未捕获TypeError:对象#<ui>没有方法'createTemplates'</ui>

时间:2013-08-03 19:46:25

标签: android-listview titanium titanium-alloy

我是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

1 个答案:

答案 0 :(得分:0)

发现问题是什么,我的问题与没有支持XML中的ListView模板所需的更新合金版本有关。我需要在Windows的命令行运行它:“npm install -g alloy@1.2.0-alpha”(不带引号)。之后,我能够使用XML中的ListView模板,如上所示。