2013-07-28 38 views
0

当我收到给定用户的地理位置时,我想更新一些字段。使用服务更新带有用户位置的字段

直到知道我有下面的代码:

http://jsfiddle.net/VSph2/10/

首先,我得到一个Error: Unknown provider: positionProvider <- position(仅在的jsfiddle)。我没有在我的真实网站上看到这个错误。

问题是,当我得到位置时,我更新服务中的position对象,但它不会在HTML视图中更新。

有什么建议吗?

回答

2

试试这个。 Fiddle

var test = angular.module('myApp', []); 
var services = angular.module('myApp.services', []); 
services.factory('position', ['$http', function ($http) { ... 

应该

var test = angular.module('myApp', []); 
test.factory('position', ['$http', function ($http) { ... 

您应该更新控制器代码这一点,使用一个回调函数和$适用于申请设置范围值。

position.getPosition(function (p) { 
    $scope.$apply(function() { 
     $scope.position.latitude = p.coords.latitude; 
     $scope.position.longitude = p.coords.longitude; 
     $scope.position.accuracy = p.coords.accuracy; 
    }); 
}); 
+0

谢谢,那是第一次修复。你知道为什么如果你接受提供你的地理定位'N/A'没有更新到真正的价值吗? – glarkou

+0

我认为问题是因为工厂异步返回,因此position.latitude =“N/A”,然后相应更新。你能提供一个固定的jsfiddle吗? – glarkou

+0

@salamis。完成。请检查。 – zsong

相关问题