【发布时间】:2014-07-02 22:02:49
【问题描述】:
我最近开始用 AngularJS 和 NodeJS 重写一段现有的 PHP 代码。简而言之,代码从一个 api 调用中获取所有员工,然后循环这些员工中的每一个并进行另一个 api 调用以获取与该员工相关的所有约会。
后端 API(用 node 和 express 编写)运行良好。我已经对每条路径进行了手动检查,它已经从 MySQL DB 返回了正确的 JSON 数据。
这是控制器的 Angular 应用程序代码:
var calendar = angular.module('calendar', []);
function mainController($scope, $http) {
//Get staff
$http.get('/api/staff')
.success(function(data) {
$scope.staff = data;
console.log(data);
})
.error(function(data) {
console.log('Error: ' + data);
});
$scope.getApps = function($staff) {
$http.get('/api/' + $staff + '/appointments')
.success(function(data) {
$scope.appointments = data;
console.log(data);
})
.error(function(data) {
console.log('Error: ' + data);
});
}
}
我的 index.html:
<html ng-app="calendar">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"><!-- Optimize mobile viewport -->
<title>Calendar</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script><!-- load jquery -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script><!-- load angular -->
<script src="app.js"></script>
</head>
<body ng-controller="mainController">
<div class="staff_Col" ng-repeat="s in staff">
<div class="staff_Header">
{{ s.FirstName }}
</div>
{{ getApps(s.StaffID) }}
.......
</div>
</body>
</html>
当页面加载时,它会调用所有的员工,然后使用 ng-repeat 循环,然后使用 Staffid 调用 getApps 函数。
我遇到的问题是,每次我加载页面时,它都会杀死我的浏览器。根据我在控制台中观察到的情况,它对每个工作人员进行初始调用,然后再次循环返回,直到冻结并占用浏览器。
我觉得这是我从 PHP 到 Angular 的知识差距,非常感谢一些指导。感谢您的帮助!
【问题讨论】:
标签: node.js angularjs api angularjs-ng-repeat