2015-06-26 1 views
0

Мой желаемый сценарий заключается в том, что значение, введенное в поле input, не должно распространяться на модель до тех пор, пока не будет нажата кнопка сохранения. Я нашел эту тему: Emberjs: Prevent changes propagation throughout a transaction однако она довольно старая. Есть ли другой способ сделать это?Остановить изменение распространения до нажатия кнопки сохранения в ember.js

ответ

0

Возможно, вы захотите попробовать ember-buffered-proxy.

var buffer = BufferedProxy.create({ 
    content: modelInstance 
}); 

buffer.set('name', 'something'); 

// apply the changes to the model 
buffer.applyBufferedChanges(); 
modelInstance.save(); 

// or discard the changes 
buffer.discardBufferedChanges(); 

Если вы свяжете вход в собственность на buffer вместо modelInstance и вызвать buffer.applyBufferedChanges(); ОК сохранить это даст вам поведение, которое вы хотите.

+0

Я начал писать что-то подобное себе, но я надеялся, что есть встроенная функциональность, которая будет работать именно так. Тем не менее, я собираюсь принять этот ответ. –

+0

В чем проблема с использованием режима напрямую? Вызов '.save()' когда нажата функция сохранения и 'rollback()' (или новая версия, которая, я думаю, является 'rollbackAttributes()'), чтобы вернуть значение в исходное состояние? – jmurphyau

+0

Интересное @jmurphyau. OP, используете ли вы данные Ember? В чем причина, почему вам нужно это другое поведение? Просто любопытно. –

Смежные вопросы