从AngularJS访问LinkedIn API

Eug*_*vas 1 javascript linkedin angularjs

我正在构建一个使用Angular.js访问LinkedIn API的应用程序.会发生的是,当我调用API时,模型不会立即刷新,而是在我在屏幕上进行另一次更改之后.例如,我已将API调用绑定到一个按钮,但我必须按两次才能在屏幕上刷新数据.这是我的控制器:

    angbootApp.controller('AppCtrl', function AppCtrl($scope, $http) {
        $scope.getCommitData = function() {
            IN.API.Profile("me").fields(
                    [ "id", "firstName", "lastName", "pictureUrl",
                            "publicProfileUrl" ]).result(function(result) {
                //set the model
                $scope.jsondata = result.values[0];
            }).error(function(err) {
                $scope.error = err;
            });
        };
    });
Run Code Online (Sandbox Code Playgroud)

这是我的按钮和内容的链接:

<div>
  <a href="{{jsondata.publicProfileUrl}}">{{jsondata.firstName}}</a>
  <form ng-submit="getCommitData()">
    <input type="submit" value="Get Data">
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

编辑:解释我是如何在这里做的

Liv*_* T. 6

在检索结果/错误时,您需要调用$ scope.$ apply

angbootApp.controller('AppCtrl', function AppCtrl($scope, $http) {
    $scope.getCommitData = function() {
        IN.API.Profile("me").fields(
                [ "id", "firstName", "lastName", "pictureUrl",
                        "publicProfileUrl" ]).result(function(result) {
            //set the model
            $scope.$apply(function() {
                $scope.jsondata = result.values[0];
            });
        }).error(function(err) {
            $scope.$apply(function() {
                $scope.error = err;
            });
        });
    };
});
Run Code Online (Sandbox Code Playgroud)

角度世界之外的任何东西都不会触发视图的自动刷新.请参阅$ apply