Angular.js在控制器中渲染数据
Angular.js render data in controller
我有一个相当简单的问题。我有一个简单的控制器和它的$scope。坐标= [];在HTML中呈现JSON:
[24.43359375, 54.6611237221]
[25.2905273438, 54.6738309659]
[25.3344726562, 54.6102549816]
[25.2685546875, 54.6801830971]
[25.2960205078, 54.6611237221]
我如何渲染JSON不是在html,但在我的控制器本身?代码是这样的。请参阅代码中的注释:
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中获取数据。
有几种方法可以解决这个问题:
你可以简单地在你还在循环中获取数据:
angular.forEach(data , function(value) { $scope.coords.push(value.coordinates); if('your condition') { $scope.positions.push(value.coordinates); } });
你可以使用promise,参见angular文档。
或者您可以监视$scope。$scope.$watch.
相关文章:
- 在控制器和数据对象之间同步数据
- 将不在模型中的数据返回到mvc控制器
- 通过连线将数据从js发送到控制器
- ng绑定和ng href问题.ng href未从控制器加载数据
- 尝试从控制器加载带有json数据的Simile时间线
- 如何将角度输入指令数据传递给控制器
- 使用服务(AngularJS)在控制器之间共享数据
- 模型数据未通过窗体传播到控制器ASP.NET MVC4
- 从控制器返回到Ajax的数据混乱
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- 使用2个控制器管理工厂JSON$http数据
- 使用Angularjs在两个不同页面的控制器之间共享数据
- 将工厂服务数据发送到控制器,以便在视图中使用
- 2ng控制器,并且需要在控制器之间共享数据
- 如何正确地将数据从自定义服务传递到角度控制器
- 在控制器angular js之间共享数据
- 将数据从Javascript传递到Laravel控制器
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 如何使用ajax调用获取数组列表数据(将数组列表数据控制器传递给ajax方法)