Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Emberjs-自定义适配器_Ember.js - Fatal编程技术网

Ember.js Emberjs-自定义适配器

Ember.js Emberjs-自定义适配器,ember.js,Ember.js,我刚刚进入Ember中适配器的世界,我想创建一个自定义适配器,将一些数据保存到webSQL数据库中,以便兼容浏览器 这看起来可能很简单,但我还停留在这个过程的开始 我有一个单独的文件: DS.WebSQLAdapter = DS.Adapter.extend({ dbName: 'testDb', dbVersion: '1.0', dbDisplayName: 'Test Db', dbSize: (2 * 1024 * 1024), init: fu

我刚刚进入Ember中适配器的世界,我想创建一个自定义适配器,将一些数据保存到webSQL数据库中,以便兼容浏览器

这看起来可能很简单,但我还停留在这个过程的开始

我有一个单独的文件:

DS.WebSQLAdapter = DS.Adapter.extend({
    dbName: 'testDb',
    dbVersion: '1.0',
    dbDisplayName: 'Test Db',
    dbSize: (2 * 1024 * 1024),

    init: function() {
        this.db = cont.openDatabase( this.dbName, this.dbVersion, this.dbDisplayName, this.dbSize );
    },
    createRecord: function( store, type, query, recordArray ) {
        console.log(data);
    }
})
在my app.js文件中:

window.App = Ember.Application.create({});

App.ApplicationAdapter = DS.WebSQLAdapter;
当我在控制器中执行此操作时:

App.ApplicationController = Ember.ArrayController.extend({

    actions: {
        myAction: function() {
            this.store.createRecord('someDB', {key: 'test', title: 'myTitle'});
        }
    }
})

它说它找不到模型
someDB
。。即使使用websql获取数据,我是否也需要为适配器创建模型

它告诉你,
SomeDB
不存在。Ember希望您的代码中有以下内容:

App.SomeDB = DS.Model.extend({});

如果不声明
SomeDB
模型,则无法创建该类型的新记录。(至少不使用余烬数据存储。)

太好了,现在可以正常工作了。但是当我使用createRecord时,它似乎没有使用我的适配器。。但是它正确地使用存储。
createRecord()
只创建客户端记录,因此它不会接触适配器。您必须在记录上调用
save()
,它才能持久保存到服务器并使用适配器。