钛 - 保存并保留模型添加
我已经重写了官方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
但查看该书的细节。
我看到一个问题,你的代码一个担忧:
问题:你的index.js缺少fetch语句,尝试后添加下面一行在你的index.js
$的.index 。打开();
myBooks.fetch();
fetch将从持久存储中获取数据。如果你在index.js中添加这行代码,它会在窗口打开时填充你的表格。
问题:你还没有添加你的代码来添加新书。您添加的新书籍代码应该包含一个collection.add()和一个model.save()类型的行。这会将新书添加到显示的当前集合中,该书将显示在列表中。它还会将图书保存到持久性存储中,以便将其存储在您的设备上。
马克
非常感谢!这很有帮助! – strano 2015-01-05 18:29:01
显示您的代码。 – seebiscuit 2014-12-28 03:13:14
我已经添加了代码。我很抱歉,我认为这不是必须的,因为它与链接页面中的文档相同。谢谢。 – strano 2014-12-29 11:26:11