24 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Keep Data in Sync in Angular
 | ||
| localeTitle: Хранить данные в синхронизации в угловых
 | ||
| ---
 | ||
| Предположим, что вы хотите, чтобы что-то появилось в представлении пользователя, когда вы добавляете его в базу данных. Новая _вещь_ , объект будет мгновенно отображаться в цикле _нг-повторов_ в вашей точки зрения HTML , если вы просто добавить его в свой локальный массив с
 | ||
| ```
 | ||
| $scope.awesomeThings.push(newThing); 
 | ||
| ```
 | ||
| 
 | ||
| Но вам все равно нужно добавить его в свою коллекцию баз данных. Добавьте его в свою коллекцию с помощью
 | ||
| ```
 | ||
| $http.post('/api/things', newThing); 
 | ||
| ```
 | ||
| 
 | ||
| Но ждать! Вы скоро поймете , что в то время как все другие вещи в вашем массиве _$ scope.awesomeThings_ имеют уникальные идентификаторы , назначенные MongoDB (под _вещи._ Id\_ недвижимость), ваш _newThing_ объект не будет, что сделает его трудно для вас в какой - то момент к сделать действия с базой данных на нем (удаление его из вашей базы данных требует использования его свойства _._ id\_). Итак, что вы хотите сделать после добавления в свой массив _$ scope.awesomeThings_ (потому что мы хотим, чтобы он сразу отображался на странице пользователя). В целом, ваш код для добавления newThing в ваш локальный массив и базу данных будет выглядеть так:
 | ||
| ```
 | ||
| $scope.awesomeThings.push(newThing); 
 | ||
|  $http.post('/api/things', newThing).success(function(thatThingWeJustAdded) { 
 | ||
|     $scope.awesomeThings.pop(); // let's lose that id-lacking newThing 
 | ||
|     $scope.awesomeThings.push(thatThingWeJustAdded); // and add the id-having newThing! 
 | ||
|  }; 
 | ||
| ```
 | ||
| 
 | ||
| Это обновляет локальный массив для кажущихся мгновенными результатами для вашего пользователя, а затем синхронизирует его с вашей базой данных и обновляет локальный массив в фоновом режиме с помощью базы данных вашего _нового_ объекта _Thing_ , уникального _._ id\_ и все. Обратите внимание на обратный вызов , мы переходим к функции _успеха_ получает новую _вещь_ обратно из базы данных в качестве аргумента! Таким образом, вы можете легко добавить его обратно в локальную область без лишних издержек. |