如何在Ember中使用LSAdapter?

时间:2014-08-19 14:26:31

标签: ember.js ember-data

我对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文档中未提及的任何内容?

1 个答案:

答案 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()来保留记录。