freeCodeCamp/guide/russian/miscellaneous/keep-data-in-sync-in-angular/index.md

3.1 KiB
Raw Blame History

title localeTitle
Keep Data in Sync in Angular Хранить данные в синхронизации в угловых

Предположим, что вы хотите, чтобы что-то появилось в представлении пользователя, когда вы добавляете его в базу данных. Новая вещь , объект будет мгновенно отображаться в цикле нг-повторов в вашей точки зрения 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_ и все. Обратите внимание на обратный вызов , мы переходим к функции успеха получает новую вещь обратно из базы данных в качестве аргумента! Таким образом, вы можете легко добавить его обратно в локальную область без лишних издержек.