我正在构建一个使用 Angular.js 访问 LinkedIn API 的应用程序。发生的情况是,当我调用 API 时,模型不会立即刷新,而是在我在屏幕上进行另一次更改之后。例如,我将 API 调用绑定(bind)到一个按钮,但我必须按两次才能让屏幕刷新数据。这是我的 Controller :
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;
});
};
});
这是我的按钮和内容链接:
<div>
<a href="{{jsondata.publicProfileUrl}}">{{jsondata.firstName}}</a>
<form ng-submit="getCommitData()">
<input type="submit" value="Get Data">
</form>
</div>
编辑:解释我是怎么做到的here
最佳答案
检索结果/错误时需要调用$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;
});
});
};
});
Angular 世界之外的任何事物都不会触发 View 的自动刷新。 参见 $apply
关于javascript - 从 AngularJS 访问 LinkedIn API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14624194/