Backbonejs 集合具有重置集合以进行批量更新的功能。当我与来自服务器的 JSON 数据同步时,我想在 Titanium Alloy 中使用此功能,但看起来好像没有提交/保存到 SQLite - 我正在使用 sql 适配器。
config: {
columns: {
// stuff
name: "TEXT"
},
adapter: {
type: "sql",
collection_name: "pony",
db_name: Alloy.CFG.db_name
}
}
我有一些茉莉花测试一直失败。仅供参考,我有用于开发的迁移脚本,它向集合中添加了 7 个项目,以便我可以使用一些东西。
describe("pony model", function () {
var Alloy = require("alloy")
data = {name: "My little pony"},
collection,
item;
beforeEach(function(){
collection = Alloy.createCollection('pony');
item = Alloy.createModel('pony');
});
// PASSES
it('can reset all data', function () {
collection.fetch();
expect(collection.length).toEqual(7);
collection.reset(data)
expect(collection.length).toEqual(1);
})
// FAILS
it('saves reset data', function () {
collection.fetch();
expect(collection.length).toEqual(7);
collection.reset(data)
collection.fetch()
expect(collection.length).toEqual(1);
})
afterEach(function () {
item.destroy();
});
})
这个错误在 UI 中显示的方式是,当我保存它时,当我与服务器同步数据时,TableView 会显示新记录,然后当我转到另一个视图并返回同一个 TableView 时,同步的数据就消失了,取而代之的是默认数据。