Если вы знаете конкретный объект, который вы хотите, чтобы «смотреть», вы можете использовать EntityAspect.propertyChanged события (см: http://breeze.github.io/doc-js/api-docs/classes/EntityAspect.html#event_propertyChanged), как это:
// assume order is an order entity attached to an EntityManager.
myEntity.entityAspect.propertyChanged.subscribe(function(propertyChangedArgs) {
// this code will be executed anytime a property value changes on the 'myEntity' entity.
if (propertyChangedArgs.propertyName === "Approved") {
// perform your logic here.
}
});
Или, если вы хотите смотреть специфическое свойство на каждой сущности, вы можете выполнить подобный тест с использованием EntityManger.entityChanged события (см http://breeze.github.io/doc-js/api-docs/classes/EntityManager.html#event_entityChanged)
myEntityManager.entityChanged.subscribe(function (args) {
// entity will be the entity that was just changed;
var entity = args.entity;
// entityAction will be the type of change that occured.
var entityAction = args.entityAction;
if (entityAction == breeze.EntityAction.PropertyChange) {
var propChangArgs = args.args;
if (propChangeArgs.propertyName === "Approved") {
// perform your logic here
}
}
});
Больше йм ail можно найти здесь: http://breeze.github.io/doc-js/lap-changetracking.html
Я знаю, что могу слушать это конкретное событие, но я сохраняю его в любом случае, поэтому я хотел бы сделать это в save changes() :) – Peter
Тогда да, просто пойдите и используйте myEntity.entityAspect.originalValues. Этот хеш будет иметь только значения для измененных свойств. –
Спасибо @jaytraband Я попробую это завтра. – Peter