我正在尝试调用 $http.get 方法来加载页面内容(这是电子邮件地址列表)。
当我的页面加载时,它会不断调用 http.get 方法,而我只想调用它一次以加载电子邮件地址,然后将其存储在范围变量中。
我的查看代码是
<h2>Members</h2>
<!--<div>{{getTeamMembers()}}</div>-->
<div ng-repeat="member in teamParticipants">
<span> </span> <span>{{member}}</span>
</div>
我的控制器类是
Controllers.controller('FixedTeamController', function ($scope,$http,$location) {
$scope.addTeam = function() {
$http.post('team', $scope.team).
success(function(fixedTeam, status, headers, config) {
//succcess
}).
error(function(fixedTeam, status, headers, config){
console.debug("error");
});
};
$scope.getTeamMembers = function(){
var teamUId = "12541254";
$http({method: 'GET', url: 'team/'+teamUId}).
success(function(data, status, headers, config) {
var members = [];
$(data.listOfMembers).each(function(id,partcipantEmail){
$http({method: 'GET', url: 'users?email='+partcipantEmail}).
success(function(participant, status, headers, config) {
members.push("new member");
})
});
$scope.teamParticipants = members;
}).
error(function(data, status, headers, config) {
console.debug("error");
});
};
});
代码工作正常,但它连续调用 getTeamMembers() 函数,所以我的问题是我应该怎么做才能只调用一次函数。
编辑 :: 添加了用于添加新团队成员的其他方法“addTeam”(它使用不同的视图)。通过从控制器内部调用函数部分解决了问题,但是当我加载 addTeam 视图时,$scope.getFixedTeam() 函数也被调用,我不想调用这个函数。我怎样才能做到这一点 ?问候,