Я получаю данные json по http-вызову и подписываюсь как: -
this.localService.getdata('url').subscribe(
function (success) {
this.dataa = success;
this.dataa2 = success;
}
);
ссылка на стек:
https://stackblitz.com/edit/angular-stackblitz-json-xr7ny8?file=src/app/app.component.ts
1) data.json
значение присваивается переменной dataa2
изменяется и когда
метод get2()
называется dataa2
значение меняется. Одновременно
для переменной test2
.
2) Как мне сохранить data.json
в переменной (например, dataa2
), не меняя ее
значение в данной ситуации.
3) Почему я не могу сохранить успех в двух переменных без изменения их значений. Как
хранить данные об успехе в двух переменных, не влияя друг на друга. Я
Нужно каждый раз подписываться на получение копии данных JSON?
data.json
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
.html
<button type ="button" (click)="get()">tset</button>
<br/>
<br/>
<br/>
<button type ="button" (click)="get2()">tset2</button>
.ts
import { data } from './test';
export class AppComponent implements OnInit {
name = 'Angular';
dataa:any;
dataa2:any;
test ={
'id':'abc'
}
test1:any;
test2:any;
constructor() {
}
ngOnInit() {
this.dataa = data;
this.dataa2 = data;
this.test1 = this.test;
this.test2 = this.test;
}
get(){
this.dataa['userId'] = 2;
this.dataa['id'] = 2;
this.test1['id'] = 'I am changed';
}
get2(){
console.log(JSON.stringify(this.dataa));
console.log(JSON.stringify(this.dataa2));
// should be===> this.dataa2 = {
// "userId": 1,
// "id": 1,
// "title": "delectus aut autem",
// "completed": false
// }
console.log(JSON.stringify(this.test1));
console.log(JSON.stringify(this.test2));
}
}