Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从服务方法查看数据_Javascript_Angularjs_Service_Controller - Fatal编程技术网

Javascript 从服务方法查看数据

Javascript 从服务方法查看数据,javascript,angularjs,service,controller,Javascript,Angularjs,Service,Controller,所以我有一个服务,它得到一个json对象,这个对象工作得很好。在我的控制器中,我希望观察该对象的任何更改。当对象发生更改时,我希望它在UI中动态更新。这是我的服务: angular.module('vertopsappApp.services', []) .factory('vertopsappAppAPIservice', function($http) { var vertopsappAppAPI = {}; vertopsappAppAPI.getDrivers = function(

所以我有一个服务,它得到一个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);
 });

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

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

用示例编辑:

数据更改时的内部服务:

$rootScope.$emit("value_changed", newValue); //trigger this when you know there is a change in value
内部控制器:

$rootScope.$onvalue\u已更改,函数E,新值{ $scope.urUIVariable=newValue;
};

手表代码没有多大意义。响应数据存储和使用在哪里?它是您存储数据的地方,您可能希望关注这些数据。显示更多与getDrivers$http服务利用承诺相关的代码,您应该了解如何使用它们。您能提供一个示例说明您的意思吗?