https://github.com/RzoDev/ngx-compare-object
An Angular Class tool to compare an initial object with another modified version of self.
https://github.com/RzoDev/ngx-compare-object
Last synced: about 2 months ago
JSON representation
An Angular Class tool to compare an initial object with another modified version of self.
- Host: GitHub
- URL: https://github.com/RzoDev/ngx-compare-object
- Owner: RzoDev
- License: mit
- Created: 2025-08-25T00:13:55.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-09-01T05:49:36.000Z (about 2 months ago)
- Last Synced: 2025-09-01T07:44:05.452Z (about 2 months ago)
- Language: TypeScript
- Size: 4.88 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-angular - ngx-compare-object - Angular utility to compare an original object with its modified version. (Development Utilities / Developer Tools)
- fucking-awesome-angular - ngx-compare-object - Angular utility to compare an original object with its modified version. (Development Utilities / Developer Tools)
README
# NgxCompareObject [](https://badge.fury.io/js/ngx-cam-shoot) [](https://app.travis-ci.com/github/rzodev/ngx-compare-object) []() [](https://github.com/RzoDev/ngx-compare-object/blob/main/LICENSE.md)
An Angular Class tool to compare an initial object with another modified version of itself.
## Prerequisites
- Angular: `>=19.2.0`
## Usage
1. Install via npm
`npm i ngx-compare-object`
2. Import
```typescript
import { NgxCompareObject } from 'ngx-compare-object';
```
3. Usage example
```html
Edit user
First name
Last name
Email
Cancel
Submit
```
```typescript
private fb = inject(FormBuilder);
private route = inject(ActivatedRoute);
private co!: CompareObject;
form: FormGroup;
@Input() id: string;
ngOnInit(){
if(this.id){
this.getInfo(this.id);
}
}
private getInfo(id: string){
this.http.get('https://example.com/users/'+id)
.subcribe((response)=>{
this.initForm(response.user);
})
}
private initForm(user: IUser){
this.form = this.fb.group({
firstname: [user.firstname, Validators.required],
lastname: [user.lastname, Validators.required],
email: [user.email, Validators.required]
});
const originalForm = this.form.value();
this.co = new CompareObject(originalForm);
}
hasChanges(): boolean{
if(!this.co) return;
const form = this.form.value();
return !this.co.isSame(form);
}
private restore(){
this.form.reset(this.co.getOriginal());
}
submitUser(){
if(this.hasChanges()){
//do something
}
}
cancelSubmit(){
this.restore();
}
```