javascript - Angular.js 在 Controller 中渲染数据

标签 javascript json angularjs

我有一个相当简单的问题。我有一个简单的 Controller 及其 $scope.coords = [];在 HTML 中呈现 JSON:

[24.43359375, 54.6611237221]
[25.2905273438, 54.6738309659]
[25.3344726562, 54.6102549816]
[25.2685546875, 54.6801830971]
[25.2960205078, 54.6611237221] 

如何在 Controller 本身中而不是在 html 中呈现该 JSON?代码看起来像这样。请看代码中的注释:

propertyModule.controller('propertyController', ['$scope', 'Property', function ($scope, Property) {

        // Query returns an array of objects, MyModel.objects.all() by default
        $scope.properties = Property.query();

        // Getting a single object
        $scope.property = Property.get({pk: 1});

        $scope.coords  = [];

        $scope.properties = Property.query({}, function(data){

        console.log(data);

        angular.forEach(data , function(value){

            $scope.coords.push(value.coordinates);

        });

        });

        $scope.positions =  //$Resource('realestate.property').items();

        [

        [54.6833, 25.2833], [54.67833, 25.3033] // those coordinates are hardcoded now, I want them to be rendered here by $scope.coords


        ];


    }]);

最佳答案

首先,您向我们展示了一堆数组,而不是 JSON 文档。但由于您的代码似乎可以正常工作,因此我假设您确实有一个有效的 JSON 可供使用。

您需要考虑您正在此处发出异步请求的事实:

$scope.properties = Property.query({}, function(data) {

    console.log(data);

    angular.forEach(data , function(value){
        $scope.coords.push(value.coordinates);
    });

});

这意味着您将无法在任何内容到达之前从 $scope.coords 获取数据。

有几种方法可以解决这个问题:

  • 您可以在循环中时简单地获取数据:

    angular.forEach(data , function(value) {
        $scope.coords.push(value.coordinates);
        if('your condition') {
            $scope.positions.push(value.coordinates);
        }    
    });
    
  • 您可以使用 Promise,请参阅 angular doc .

  • 或者您可以使用 $scope.$watch 监视 $scope.coords。

关于javascript - Angular.js 在 Controller 中渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24910883/

相关文章:

javascript - 单击 Accordion 中带有元素 id 的链接时打开 JQuery Accordion

c# - MVC 中的 Roxy 文件管理器不接受 session 路径

javascript - ?来自反向地理编码响应的标记

javascript - 嵌套子指令根元素如何在父指令根元素的同一级别工作?

javascript - 如何在VIS网络图中添加按选项选择的内容?

javascript - 如果在 PHP、JS 中登录失败但发现问题,我想生成一个警报对话框

java - 使用java解析JSON文件中的所有JSONObject

angularjs - Restangular 错误处理导致 CORS 问题?

javascript - 如果日期是今天,AngularJS 在 div 中显示,否则在其他 div 中显示

javascript - 匹配列表与给定的单词由给定的分隔符列表与单个正则表达式分隔?