Атрибуты не будут установлены одновременно, они будут установлены по одному, поэтому вам нужно увидеть оба события. соответствующий код выглядит следующим образом :
// Set a hash of model attributes on the object, firing `"change"` unless you
// choose to silence it.
set : function(attrs, options) {
// ...
// Update attributes.
for (var attr in attrs) {
var val = attrs[attr];
if (!_.isEqual(now[attr], val)) {
now[attr] = val;
// ...
if (!options.silent) this.trigger('change:' + attr, this, val, options);
}
}
// Fire the `"change"` event, if the model has been changed.
if (!alreadyChanging && !options.silent && this._changed) this.change(options);
Вы видите, что один из атрибутов установлен, затем инициируется его событие изменения, затем процесс повторяется для следующего атрибута. Если вам нужно только одно событие, вам следует привязать только все событие изменения модели.
Для полноты я должен упомянуть, что в документации по интерфейсу для Model#set
не указывается какое-либо конкретное поведение в отношении того, когда будут инициированы отдельные события изменения, а только сказано, что они будут инициированы.