AngularJS:无法确定您的位置

时间:2017-05-16 06:54:53

标签: angularjs

我是anugularJS的新手,所以我可能做错了什么。我的角度版本是1.6.4。对于地理位置,我使用此模块angularjs-geolocation。以下是地理位置模块plunker的演示。通过在我的项目中包含此模块并在浏览器上进行测试,我发现了这个错误。我已经遵循了所有步骤,但我错过了一些东西。

  

可能未经处理的拒绝:无法确定您的位置

这是我的user-settings.component.js文件:

(function () {
    "use strict";

    var module = angular.module(__appName);

    function controller($http, geolocation) {
        var model = this;

        model.location = function () {
            console.log("inside");

            model.coords = geolocation.getLocation().then(function (data) {
                return { lat: data.coords.latitude, long: data.coords.longitude };
            });
       }

    }

    module.component("userSettings", {
        templateUrl: "components/user-settings/user-settings.template.html",
        bindings: {
            userId: "<"
        },
        controllerAs: "model",
        controller: ["$http", "geolocation", controller]
    });

}());

这是我的user-settings.template.html文件:

<div class="text-center">
   <button type="button" class="btn btn-default" ng-click="model.location()">Location</button>
   {{model.coords}}
</div>

我的App.js文件:

angular.module(__appName, ["geolocation"]);

1 个答案:

答案 0 :(得分:0)

我在本地计算机上运行了以下代码:

<html>    
  <head>
    <script data-require="angular.js@1.2.0-rc2" data-semver="1.2.0-rc2" src="http://code.angularjs.org/1.2.0-rc.2/angular.js"></script>
    <script src="https://rawgithub.com/arunisrael/angularjs-geolocation/master/dist/angularjs-geolocation.min.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-app="myApp">
    <div ng-controller="mainCtrl">
      <p>Your location is: {{coords}}</p>
    </div>
  </body>
<script>
angular.module('myApp',['geolocation'])
  .controller('mainCtrl', function ($scope,geolocation) {
    geolocation.getLocation().then(function(data){
      $scope.coords = {lat:data.coords.latitude, long:data.coords.longitude};
    });
});
</script>
</html>

它有效。它跟你的没什么两样。未在 Plunker 中显示的位置可能是 Plunker 问题。

在本地服务器中试用。它会起作用。