我对LSAdapter的整合如下所示:
的index.html
...
<script src="lib/ember-1.6.1.js"></script>
<script src="lib/ember-data.js"></script>
<script src="lib/localstorage_adapter.js"></script>
<script src="src/app.js"></script>
...
app.js
...
App = Ember.Application.create();
App.ApplicationSerializer = DS.LSSerializer.extend();
App.ApplicationAdapter = DS.LSAdapter.extend({
namespace: 'My-Data'
});
App.ApplicationStore = DS.Store.extend({
adapter: App.ApplicationAdapter
});
...
当我调试createRecord()
来电时,它永远不会转到localstorage_adapter.js
,只会调用createRecord()
的{{1}}实现。因此数据在内存中但从未命中ember-data.js
。
我是否遗漏了LSAdapter或Ember-Data文档中未提及的任何内容?
答案 0 :(得分:2)
所有持久性适配器都以相同的方式工作。您使用createRecord()
在内存中创建记录,然后使用save()
保留该记录。
// First create the record in memory
var myRecord = this.store.createRecord('model-name', {
attribute1: 'value1',
attribute2: 'value2'
});
// Then persist the record to storage
myRecord.save();
文档有一个很棒的walkthrough of building an app使用Fixtures,然后他们在最后切换到本地存储适配器。它或多或少都是替代品,并没有什么特别的东西可以让它与本地存储一起使用。查看"Accepting Edits"上的示例,了解他们如何使用save()
来保留记录。