【发布时间】:2018-08-16 12:58:31
【问题描述】:
在以下代码中,我返回调用服务器方法“getUserNames()”,该方法返回 JSON 并将其分配给 main.teamMembers 变量。我正在构建的报告中有一个 viewAll 按钮,该按钮调用下面列出的方法“$scope.viewAllTeamMembers = function($event)”。
现在,查看所有按钮列出了存储在 main.teamMembers 中的所有值,在第一次加载报表时不起作用。但是当我导航到报告中的其他按钮并尝试访问 viewAll 它的工作时。
我询问从匿名返回 JSON 的原因是,我发现当它是一个全局变量时,viewAll 按钮第一次起作用。请帮助我了解我所缺少的。
angular.module('kamApp')
.controller('MainCtrl', [
'$q',
'$rootScope',
'$scope',
'$timeout',
'endpoints',
'kamService',
'queries',
'translations',
function($q, $rootScope, $scope, $timeout, endpoints, kamService, queries, translations) {
var getUserNamesRequest = endpoints.getUserNames($rootScope.teamMemberIds).then(function(userDdata){
return userDdata;
});
getUserNamesRequest.then(function(userDdata,$scope) {
$rootScope.userNameList = kamService.extractUserNameList(userDdata);
main.teamMembers=kamService.concatTeamMemberName(
main.teamMembersData,
$rootScope.userNameList.list
);
main.teamMembers.list = kamService.sortList(main.teamMembers.list, 'role', 'name');
});
}]);
--Directive
angular.module('kamApp')
.directive('teamMember', function() {
return {
templateUrl: 'views/team-member.html',
replace: true,
restrict: 'E',
scope: {
teamMembers: '=',
viewSwitch: '=',
changeReportTitle: '&'
},
link: function($scope) {
$scope.itemLimit = 4;
$scope.isOddLength = $scope.teamMembers.list.length % 2 !== 0;
$scope.viewAllTeamMembers = function($event) {
$event.target.style.opacity = 0.6;
$scope.viewSwitch.dashboard = false;
$scope.viewSwitch.teamMember = true;
$scope.changeReportTitle()($scope.teamMembers.objectName.plural);
};
}
};
});
--HTML代码
"<div class=\"expand-link inline-block-div\" ng-click=\"viewAllTeamMembers($event)\"> \n"+
【问题讨论】:
-
请不要像这样更新问题。请回滚编辑并提出另一个问题。
标签: javascript angularjs json anonymous-function