I have two components: Parent, Child.
Here is the scenario:
- Child gets the value from Parent which continue changes
- Child is always updated for the changed value
- Child manipulates the value and displays it
- On the Parent side the value doesn't get changed just becauseof it's manipulated on the Child side
I've tried this with the @Input. Because the @Input value gets manipulated on the Child side, on the Parent side it changes also. This is what I want to prevent, but also still want to keep getting the updated value from the Parent side.
An example code with @Input:
@Component({
    selector: 'c-parent',
    template: `
           <div>{{question.name}}</div>
           <button type="button" label="xxx" (click)="changeTheValue()"></button> 
           <br/>       
           <c-child [tmpQuestion]="question"></c-child>`
})
export class Parent implements OnInit {
    question: Question; // don't get changed from the Child side
    ngOnInit() {
        question.name = "1"; 
    }
    changeTheValue(){
        question.name = "2";
    }
}
@Component({
    selector: 'c-child',
    template: `<div>{{tmpQuestion.name}}</div>`
})
export class Child implements OnInit {
    @Input() tmpQuestion: Question; // be updated for the changes
    ngOnInit() {
        tmpQuestion.name = "This is the question: " + question.name; //manipulate the value
    }
}
How can I do this with @Input approach or do I need to use something else?

 
     
     
    