Поэтому у меня есть служба, которая получает объект json, который работает нормально. В моем контроллере я хочу посмотреть этот объект для любых изменений. Когда есть изменения в объекте, я хочу, чтобы это обновление "на лету" в пользовательском интерфейсе. Вот моя услуга:
angular.module('vertopsappApp.services', [])
.factory('vertopsappAppAPIservice', function($http) {
var vertopsappAppAPI = {};
vertopsappAppAPI.getDrivers = function() {
return $http({
method: 'JSONP',
url: 'http://faboolis.com/example.json?callback=JSON_CALLBACK'
});
}
return vertopsappAppAPI;
});
Мой контроллер выглядит так, но я уверен, что это не способ сделать это.
.controller("LineCtrl", function ($scope, vertopsappAppAPIservice) {
$scope.$watch('vertopsappAppAPIservice.getDrivers()', function (newVal) {
console.log('data changes into: ', newVal)
}, true);
});
Любая помощь приветствуется. Заранее спасибо.
Вы можете попробовать исправить событие из службы, когда ваши данные изменятся, и прослушивание их на контроллере и, следовательно, обновление вашей модели, чтобы пользовательский интерфейс изменился.
Редактировать с помощью примера:
Внутренняя служба, когда ваши данные изменяются:
$rootScope.$emit("value_changed", newValue); //trigger this when you know there is a change in value
Внутренний контроллер:
$rootScope.$on("value_changed", function(e,newValue) { $scope.urUIVariable = newValue; });
getDrivers()