【发布时间】:2019-01-08 06:15:16
【问题描述】:
我对 javascript 和 angular 都很陌生。我的代码从 API 检索数据并可以将其打印到控制台,但是当我尝试将其分配给 $scope.saveData 时,它只能在 fetch 内部工作。据我所知,我的问题与异步运行的代码和承诺的工作方式有关,但我似乎找不到任何可以解决我的问题的资源。这是我的代码。
角度
angular.module('myApp',[])
.controller('testCtrl',['$scope', function($scope){
const response = await fetch("http://localhost:3000/conferences").then(res=>{
// $scope.saveData = null;
if(res.url == "http://localhost:3000/outlook"){
res.json().then(data=> {
window.location.replace(data.url)
})
}else{
res.json().then(data=> {
$scope.saveData = data
console.log($scope.saveData)
});
}
});
console.log($scope.saveData)
}]);
html
<!DOCTYPE html>
<html ng-app = 'myApp'>
<head>
<title>Scheduled Calls</title>
<link rel="stylesheet/less" type = "text/css" href="./scheduledCalls.less" />
</head>
<body>
<header style="text-align: center">
<h1 class = "header" >Scheduled Calls</h1>
</header>
<div ng-controller="testCtrl" >
<p>{{saveData}}</p>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src = "scheduledCalls.js"></script>
</body>
</html>
$scope.saveData = data 下的 console.log 有效。对js代码底部的console.log不起作用。
【问题讨论】:
-
坦率地说,我认为使用 AngularJS $http Service 比使用原始 JavaScript fetch API 更容易。
标签: javascript html angularjs web