Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将获取数据分配给$scope.variable_Javascript_Html_Angularjs_Web - Fatal编程技术网

Javascript 如何将获取数据分配给$scope.variable

Javascript 如何将获取数据分配给$scope.variable,javascript,html,angularjs,web,Javascript,Html,Angularjs,Web,我对javascript和angular都相当陌生。我的代码从API检索数据,并可以将其打印到控制台,但当我尝试将其分配给$scope.saveData时,它只在获取内部工作。我已经了解到我的问题与异步运行的代码和承诺的工作方式有关,但我似乎找不到任何可以解决我问题的资源。这是我的密码 棱角的 angular.module('myApp',[]) .controller('testCtrl',['$scope', function($scope){ const response = a

我对javascript和angular都相当陌生。我的代码从API检索数据,并可以将其打印到控制台,但当我尝试将其分配给
$scope.saveData
时,它只在获取内部工作。我已经了解到我的问题与异步运行的代码和承诺的工作方式有关,但我似乎找不到任何可以解决我问题的资源。这是我的密码

棱角的

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


预定通话
预定通话
{{saveData}}


$scope.saveData=data
下的console.log有效。它对js代码底部的console.log不起作用。

您想实现什么?为什么回调内部的日志记录
$scope.saveData
不足

正如您所提到的,问题是因为
fetch
是异步发生的。在
。然后(…)
的内部,保证已检索到
localhost:3000/conferences
的内容。由于此调用是异步的,这意味着代码可能会无序执行。发生了以下情况:

(1) 获取对本地主机的调用:3000/次会议

(2) 执行console.log($scope.saveData)(尚未分配此值)

(3) fetch调用的结果将被返回,.then(…)中的所有内容都将执行(此console.log($scope.saveData)工作,因为它保证fetch已完成


如果您必须让代码等待获取的结果,我建议您看看您试图完成什么?为什么在回调中记录
$scope.saveData
不够

正如您所提到的,问题是因为
fetch
是异步进行的。在
的内部,然后(…)
保证已检索到
localhost:3000/conferences
的内容。由于此调用是异步的,这意味着代码可能会无序执行。发生了以下情况:

(1) 获取对本地主机的调用:3000/次会议

(2) 执行console.log($scope.saveData)(尚未分配此值)

(3) fetch调用的结果将被返回,.then(…)中的所有内容都将执行(此console.log($scope.saveData)工作,因为它保证fetch已完成


如果您必须让代码等待fetch的结果,我建议您查看一下

我的问题是,我想引用相应html文件中存储在$scope.saveData中的值,但目前没有任何内容被打印到视图中。我想我的问题是如何以可复制的方式存储该数据在html文件中检索到。很抱歉,缺少clarity@TomKaizer这是否只是一种提取在角度摘要周期之外解析的情况?如果是这样,您可以将赋值包装到
$scope.apply()中的
$scope
变量
。成功了!感谢我在这方面已经坚持了很长时间。我的问题是我想在相应的html文件中引用存储在$scope.saveData中的值,但目前没有任何内容被打印到视图中。我想我的问题是如何以可在html文件中检索的方式存储该数据。对不起缺乏clarity@TomKaizer这是否只是一种提取在角度摘要周期之外解析的情况?如果是这样,您可以将赋值包装到
$scope.apply()中的
$scope
变量
。这很有效!感谢我在这方面已经坚持了很长时间。坦白说,我认为使用AngularJS比使用原始JavaScript更容易。坦白说,我认为使用AngularJS比使用原始JavaScript更容易。
<!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>