2012-04-03 2 views

答えて

4

transactionを使用すると、transaction.jsと定義され、対応するテストはtransaction_test.jsとなります。代わりに

App.store = DS.Store.create(...); 

App.User = DS.Model.extend({ 
    name: DS.attr('string') 
}); 

var transaction = App.store.transaction(); 
transaction.createRecord(App.User, { 
    name: 'tobias' 
}); 

App.store.commit(); // does not invoke commit 
transaction.commit(); // commit on store is invoked​ 
1

通話たcreateModel:

は例hereを参照してください!

例:

// This is a persisted object (will be saved upon commit) 
var persisted = App.store.createRecord(App.Person, { name: "Brohuda" }); 

// This one is not associated to a store so it will not 
var notPersisted = App.store.createModel(App.Person, { name: "Yehuda" }); 

私はあなたのために、この​​を作りました。

+0

データリポジトリのダウンロードセクションから 'ember-latest.js'を使用しています。このファイルは2か月前(2011-01-30)にアップロードされていて、古くなっています。私はマスターのコードでこのメソッドを見つけられませんでした。 – pangratz

+0

私は 'ember-data-latest.js'を意味しています... – pangratz

+0

@pangratzが正しいです、私はこれが変更されたことに気付かなかった。 Kudos him – Luan

0

_createApp.MyModel._create()を使うことができます。モデルには独自の状態マネージャが関連付けられているので、App.store.commit()は何も行いません。

ただし、_createは「プライベート」です。私はこのユースケースのためのパブリックメソッドが必要だと思います。

+0

ここにGithubの問題があります:https://github.com/emberjs/data/issues/259 –

関連する問題