В 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.