我正在构建一个使用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;
});
};
});
这是我的按钮和内容链接:
<div>
<a href="{{jsondata.publicProfileUrl}}">{{jsondata.firstName}}</a>
<form ng-submit="getCommitData()">
<input type="submit" value="Get Data">
</form>
</div>
编辑:关于我是如何做到的解释here
答案 0 :(得分: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;
});
});
};
});
角度世界之外的任何内容都不会触发视图的自动刷新。 见$apply