Use $dirty instead of homespun hasChanges