2

Dexie を使用して新しいエントリを追加しようとしていますが、ID 番号を指定した場合にのみ追加できます。ID を主キーとして自動インクリメントしたいのですが、どうすればこれを実現できますか?

これは機能します

var db = new Dexie("user-database");
db.version(1).stores({
    users: "id++"
});
db.open(); 
var insert_data = {id:5,name: "Paul", email: "test@test.com", user_group: 2};
db.users.add(insert_data);

しかし、挿入オブジェクトから id を取り出すと、うまくいきません。下記参照

これは機能しません

var db = new Dexie("user-database");
db.version(1).stores({
    users: "id++"
});
db.open(); 
var insert_data = {name: "Paul", email: "test@test.com", user_group: 2};
db.users.add(insert_data);</code>

何か案は?

4

2 に答える 2

2

id追加されますので確認してください。

スクリーンショット: 挿入されたデータのスクリーンショット

デモ

html:

Name:<input type="text" name="name" id="name"/><br/>
Email<input type="text" name="email" id="email"/></br>
<button>add new</button>

JavaScript:

// Declare db instance
var db = new Dexie("test-database");

// Define Database Schema
db.version(1).stores({
    users: "++id, name, email"
});

// Open Database
db.open(); 

function add_new(name,email){
    // Interact With Database
    db.transaction('rw', db.users, function () {
        // Let's add some data to db:
        insert_object = {name:name,email:email};
        db.users.add(insert_object);
    }).catch(function(err) {
        console.error(err.stack || err);
    });    
}

add_new("susheel singh","susheel61@gmail.com");//default content
document.querySelector("button").addEventListener("click",function(e){
    add_new(document.getElementById("name").value,document.getElementById("email").value);
});
于 2015-10-21T03:09:35.617 に答える