javascript - $http.get 和 Controller 之间的 Angular 共享变量

标签 javascript angularjs angularjs-directive angularjs-scope

<分区>

我无法将 $http.get() 中的一个变量的内容传递到此方法之外...它始终是 undefined

我用 $rootScope 测试过,但没有用。

controller('myControl', function ($scope, $http) {
    var content;

    $http.get('../Json/data.json').success(function (data, content) {
        content = data;
    }).error(function (data, status, headers, config) {
        $scope.dataJson = "ERROR";
    });

    console.log(content); 
});

最佳答案

这里有两个问题:

  • 成功处理程序中的content 参数隐藏 Controller 中的content 变量。
  • 您正试图在 content 具有值之前将其写入控制台。这将不起作用,因为 $http.get() 是异步的。

解决这些问题:

  • 删除content 参数。它毫无用处。
  • success 回调中使用 变量。
controller('myControl', function ($scope, $http) {
    var content;

    $http.get('../Json/data.json').success(function (data) {
        content = data;

        console.log(content);
        $scope.dataJson = content;
    }).error(function (data, status, headers, config) {
        $scope.dataJson = "ERROR";
    });
});

关于javascript - $http.get 和 Controller 之间的 Angular 共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28211842/

相关文章:

python - 使用 ng-flow 上传到 gae blobstore 的文件总是命名为 'blob'

jquery - FullCalendar eventRender 事件卡住浏览器选项卡

angularjs - 在我的元素标签上添加和删除附加类

javascript - Angular-material md-button 自动悬停效果

javascript - jQuery 的 val() 在 bootstrap popover 输入字段上返回空字符串

javascript - 将对象传递给 AngularJS 中的指令时没有数据

javascript - 如何使用angularjs在visjs中添加放大缩小按钮?

angularjs - 使用指令将 ngModel 添加到输入

javascript - Jquery 自定义验证器 - 检查值是否有效?

javascript - 需要将包含img url的Json链接放在<img ng-src中