0

我是Titanium的新手,所以请原谅我缺乏理解。

即使我使用的是 sdk 版本 3.2(在我的 tiapp.xml 中有 sdk 版本:3.2.0.v20130801162445),但当我尝试使用上面的 xml 的视图时,我会收到此错误:[ERROR][V8Exception(615) ] 在合金/控制器/feed.js:22 发生异常:未捕获的类型错误:对象 # 没有方法“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)。如果我将 ListView XML 从 feed.xml 文件中拉出,则会触发警报,当我将 ListView XML 放回时,我会收到上面的错误。

我正在尝试使用此示例中的代码: https ://gist.github.com/aaronksaunders/5896390 但不能真正说出我缺少什么?

谢谢!-詹姆士

4

1 回答 1

0

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

于 2013-09-19T01:54:11.923 回答