2012-04-03 15 views
7

में अस्थायी गैर लगातार वस्तुएं बनाएं I एम्बर-डेटा का उपयोग करके एक ऑब्जेक्ट बनाना चाहते हैं, लेकिन जब तक मैं प्रतिबद्ध नहीं हूं तब तक मैं इसे सहेजना नहीं चाहता हूं। मैं इस व्यवहार को कैसे प्राप्त कर सकता हूं?एम्बर-डेटा

उत्तर

4

आप transaction की, transaction_test.js में इसी परीक्षण के साथ transaction.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" }); 

मुझे आपके लिए यह http://jsfiddle.net/Qpkz5/269/ कर दिया है।

+0

आप डेटा भंडार के डाउनलोड अनुभाग से 'ember-latest.js' का उपयोग कर रहे हैं। यह फ़ाइल 2 महीने पहले अपलोड की गई है (2011-01-30) और पुरानी है। मुझे मास्टर से कोड में यह विधि नहीं मिली है। – pangratz

+0

मेरा मतलब है 'एम्बर-डेटा-नवीनतम.जेएस' ... – pangratz

+0

@pangratz सही है, मुझे नहीं पता था कि यह बदल गया था। Kudos उसे – Luan

0

आप _create: App.MyModel._create() का उपयोग कर सकते हैं - यह मॉडल को अपने राज्य प्रबंधक के साथ जोड़ देगा, इसलिए App.store.commit() कुछ भी नहीं करेगा।

हालांकि, _create "निजी" है। मुझे लगता है कि इस उपयोग के मामले के लिए एक सार्वजनिक विधि होने की जरूरत है।

+0

यहां गिथूब मुद्दा है: https://github.com/emberjs/data/issues/259 –