【问题标题】:Titanium - Save and persist models addedTitanium - 添加了保存和持久化模型
【发布时间】:2014-12-27 19:06:22
【问题描述】:

我已经重写了官方 Titanium 文档 (http://docs.appcelerator.com/titanium/latest/#!/guide/Creating_Your_First_Titanium_App) 的“第一个应用程序”,但我不明白为什么我添加的新书在我重新启动应用程序后无法显示。

保存新模型的不是book.save 方法吗? 来自关于book.save方法的官方文档

将书添加到集合中并将其持久化到数据库中。

更新:这是我的代码。与官方文档相同。这是index.js

var myBooks = Alloy.Collections.books;

var book = Alloy.createModel('books', {
    title : 'Great Expectations',
    author: 'Charles Dickens'
});

myBooks.add(book);
book.save();

function showBook (event){
    var selectedBook = event.source;
    var args = {
        title: selectedBook.title,
        author: selectedBook.author
    };
var bookview = Alloy.createController("bookdetails", args).getView();
bookview.open();

}

$.index.open();

这是index.xml

<Alloy>
<Collection src="books"/>
<Window class="container">

    <!-- Add TableView and TableViewRow -->
    <TableView dataCollection="books">
        <TableViewRow title="{title}" author="{author}" onClick="showBook" ></TableViewRow>
    </TableView>

    <Menu id="menu" platform="android">
        <MenuItem id="addBook" title="Aggiungi un libro" onClick="addBook" showAsAction="Ti.Android.SHOW_AS_ACTION_IF_ROOM" />
    </Menu>

</Window>

还有bookview.js不过是查看书的详细信息。

【问题讨论】:

  • 我已经添加了代码。对不起,我认为这没有必要,因为它与链接页面中的文档相同。谢谢。

标签: backbone.js model save titanium persist


【解决方案1】:

我发现您的代码存在一个问题和一个问题:

问题:您的 index.js 缺少 fetch 语句,请尝试在 index.js 之后添加以下行

$.index.open();

myBooks.fetch();

fetch 将从持久存储中获取数据。如果您在 index.js 中添加这一行,它将在窗口打开时填充您的表格。

关注:您尚未添加将添加新书的代码。您添加新书的代码应该包含一个 collection.add() 和一个 model.save() 类型的行。这会将新书添加到显示的当前收藏中,并且该书将显示在列表中。它还将这本书保存到持久存储中,因此它将存储在您的设备上。

标记

【讨论】:

    猜你喜欢
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多