2013-07-28 37 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

相關問題