2013-06-27 4 views

ответ

3

Взятые из исходного кода inline documentation:

Этот метод делегатов экономии неявного сделки магазина. Вызов этого метода - это, по сути, запрос на сохранение любых изменений в записях, которые явно не были добавлены к транзакции.

Поскольку вы можете создать новую транзакцию, чтобы контролировать, как ваши записи сохраняются, представьте, что вы не -. Это тот случай, когда defaultTransaction приходит Другими словами, операция необходима каждый раз, когда вы-делать некоторые CRUD с вашими записями, но если вы не укажете один, то используется defaultTransaction магазина.

Чтобы сделать еще более ясным, см метода createRecord взятым из here:

createRecord: function(type, properties, transaction) { 
    properties = properties || {}; 

    // Create a new instance of the model `type` and put it 
    // into the specified `transaction`. If no transaction is 
    // specified, the default transaction will be used. 
    var record = type._create({ 
    store: this 
    }); 

    transaction = transaction || get(this, 'defaultTransaction'); 
    ... 

Код строка transaction = transaction || get(this, 'defaultTransaction'); показывает все это, как вы можете видеть, если сделка не указана для записи только создается defaultTransaction будет использован.

Надеюсь, это поможет.

+0

Спасибо за ответ. Я все еще не понимаю. Что такое '' defaultTransaction''? Переменная? Функция? Что-то вроде класса JS? Где оно сначала определено или начато? –

+1

@HaoQiLi это экземпляр класса DS.Transaction, который будет искать его имя переменной 'dafaultTransaction', и он сначала определен в классе' DS.Store' в этой строке: https://github.com /emberjs/data/blob/master/packages/ember-data/lib/system/store.js#L119, и здесь он инстанцируется: https://github.com/emberjs/data/blob/master/packages/ember -data/Библиотека/система/store.js # L139 – intuitivepixel