Angular JS从服务方法观察数据

时间:2015-08-22 19:20:17

标签: javascript angularjs service controller

所以我有一个服务可以获得一个工作正常的json对象。在我的控制器中,我想观察该对象的任何变化。当对象发生变化时,我希望在UI中动态更新。这是我的服务:

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);
 });

任何帮助将不胜感激。提前致谢。

1 个答案:

答案 0 :(得分:-1)

您可以尝试在数据更改时从服务中发出事件,并在控制器中侦听相同内容,从而更新模型以便UI更改。

使用示例编辑

数据更改时的内部服务:

$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; });