Javascript Angular JS不更新ng绑定值

Javascript Angular JS不更新ng绑定值,javascript,angularjs,Javascript,Angularjs,我想说的是,我是angular.js开发人员中的一名新手,只使用angular.js开发了大约2个月的基本测试应用程序。现在我得到了我正在实施的第一个小项目,我可以解决一个问题 问题是我有两组变量,我正在从控制器更新。这些变量正在从回调函数更改,因此angular不知道它们已更改。我读到,如果在角度上下文之外更改变量,视图将不会更新 第二个问题是,我正在使用控制器As方法初始化控制器,因为我知道这是使控制器(最佳实践)的方法。使用这种类型的控制器初始化,我无法访问$scope 解决方案:这是否需

我想说的是,我是angular.js开发人员中的一名新手,只使用angular.js开发了大约2个月的基本测试应用程序。现在我得到了我正在实施的第一个小项目,我可以解决一个问题

问题是我有两组变量,我正在从控制器更新。这些变量正在从回调函数更改,因此angular不知道它们已更改。我读到,如果在角度上下文之外更改变量,视图将不会更新

第二个问题是,我正在使用控制器As方法初始化控制器,因为我知道这是使控制器(最佳实践)的方法。使用这种类型的控制器初始化,我无法访问$scope

解决方案:这是否需要作为指令来实现,以实现我正在尝试做的事情或其他模式

HTML代码:

<div class="container-fluid navbar-fixed-top text-center" ng-controller="geoloc as GCController">
    <div class="row">
        <div class="col-xs-12">
            {{GCController.lat}}
        </div>
        <div class="col-xs-12">
            {{GCController.lon}}
        </div>
    </div>
</div>

提前谢谢。

你能粘贴你的代码吗?查看Angularjs digest cycle上的这篇文章
angular
    .module('geoapp')
    .controller('geoloc', geoloc);

geoloc.$inject = [];

/* @ngInject */
function geoloc() {
    var vm = this;

    vm.activate = activate;
    vm.title = 'geoloc';
    vm.lat = 0;
    vm.lon = 0;
    vm.error = false;

    test = 0;
    activate();

    ////////////////

    function activate() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function (position) {
                console.log("Setting" + position.coords.latitude + " " + position.coords.longitude);
                vm.lat = position.coords.latitude;
                vm.lon = position.coords.longitude;
            });
        }
        else {
            vm.error = true;
        }
    }
}