【发布时间】:2015-02-25 12:43:39
【问题描述】:
在这里,当我单击 storeAreaInCookie 时,这将导致城市的纬度和经度,这些结果我必须存储在 cookie 中,并且需要在我想在我的网站中使用的任何地方使用。但是当我尝试使用此代码时不存储 cookie 并在控制台中说未定义 cookie 存储。我该如何解决这个问题?
<div ng-app="MyApp" ng-controller="MyCtrl">
<div ng-repeat="x in names">
<div ng-click="storeAreaInCookie(x.city)" >{{x.city}}</div>
</div>
</div>
<script>
angular.module('MyApp', ['ngCookies'])
.controller('MyCtrl', ['$scope', '$http',"$rootScope", "$cookieStore", function($scope, $http, $rootScope, $cookieStore) {
$scope.storeAreaInCookie = function (area) {
var geocoder = new google.maps.Geocoder();
var lat="";
var long="";
geocoder.geocode( { 'address': area}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
$rootScope.lat=results[0].geometry.location.lat();
$rootScope.long=results[0].geometry.location.lng();
} else {
alert("Something went wrong " + status);
}
codeLatLng($rootScope.lat,$rootScope.long);
$(document).ready(function(){
$("#locationView").slideToggle();
});
});
$cookieStore.put('lat',$rootScope.lat);
$cookieStore.put('long',$rootScope.long);
alert("lat"+$cookieStore.get('lat'));
alert("long"+$cookieStore.get('long'));
};
}]);
</script>
【问题讨论】:
-
控制台有什么错误吗?
-
@pankaj 是的,它显示 cookiestore 未定义。你能帮我解决这个问题吗
-
检查我的答案,你的代码工作正常,只有我嘲笑了这个值并跳过了 google.map
-
@pankaj 在这里我将把城市作为地理编码器的输入,我将从地理编码器中获取纬度和经度,然后我会将结果存储在 cookie 中。这里我遇到了它正在执行的地理编码器的问题在 cookie 存储之后,所以只要先空,就会有 lat long。
-
你需要把这行代码($cookieStore相关的代码)放到geocode的成功里面,因为它是使用promise..like运行的
标签: angularjs google-geocoder geocode angular-cookies angularjs-digest