В angularjs, как обновить DOM из фабричной выборки данных

После успешной вставки записи в базу данных. Я хочу, чтобы список был обновлен.

в основном, при запуске приложения, список будет заполняться данными из контроллера следующим образом:

DisplayTrackingCode().then(function (result) {
  $scope.items = result;
});

затем, если я вставлю новую запись из .factory, Список не обновляется, мне нужно перейти на другую страницу или перезапустить приложение, чтобы увидеть новые изменения.

.factory('AddTrackingCode', function() {
return {
get: function(track) {
    console.log(track);
    var db = openDatabase('mydb','1.0','db',2 * 1024 * 1024);
    db.transaction(function (tx) {
    tx.executeSql('INSERT INTO trackingcode (code, name) VALUES ("'+track.code+'","'+track.name+'")'); 
    });
}
}
})

затем, как мне автоматически обновить список снова?

1 ответ

Я решаю это с помощью $broadcast

сразу после вставки записи, я сделал $broadcast в контроллере

$scope.$root.$broadcast('updating');

затем в другом контроллере, который обрабатывает DOM, который мне нужно изменить:

$scope.$on('updating',function(){
  DisplayTrackingCode().then(function (result) {
  $scope.items = result;
});
});

это обновит DOM.

Другие вопросы по тегам