Хорошо, я просто использовал механизм привязки для наблюдения за изменениями всех свойств. Это позволило мне реализовать проверки isDirty без изменения существующих моделей ...
Итак, окончательный код выглядит так:
Object.getOwnPropertyNames(obj).forEach(p => {
this.subscriptions.push(this.binding.propertyObserver(obj, p)
.subscribe(() => this.updateDirty()));
});
Метод
my updateDirty () вызывается после каждого изменения свойства, и для модели не требуется никаких изменений.
Если кто-то может предложить лучшее решение, я все еще заинтересован, но пока что это соответствует моим потребностям.