对于这个答案,我看起来很高很低,但没有直接解决这个问题。问题是这个 - 我有一个函数可以从端点获取日历列表。我有另一个函数来计算每个日历的事件数。每次在ng-repeat列表中调用它时,我都会创建一个动态变量,将日历ID附加到单词“count”作为变量名称。
function getEventsCount(calendarId) {
if(calendarId !== '') {
calendarService.getCalendarEvents(calendarId, fromDate, toDate).then(function (result) {
if(isSuccessResponse(result)) {
$scope['count' + calendarId] = result.events.length;
} else {
$scope.errorMessage = errorText + result.errorMessage;
}
});
}
}
在HTML中我想显示每个日历的事件的数字计数,但由于我们正在遍历一个ng-repeat列表,它将返回任何给定数量的日历ID,我不知道变量名称是什么对于count将是,所以我需要angular以某种方式解析那些大括号内的变量名称。
<ul class="list-group">
<li class="list-group-item" data-ng-repeat="calendar in calendarList.calendars" data-ng-init="getEventsCount(calendar.id)">
<a roll="button" class="btn-link" data-ng-click="showCalendar(calendar.id, calendar.summary)">{{calendar.summary}} ({{count + calendar.id}})</a>
</li>
</ul>
请原谅我,如果这个问题很混乱,我很乐意在必要时澄清。
答案 0 :(得分:1)
如何将计数放在范围内的对象上,用他们的id键入?然后,您可以使用id:
索引表达式中的对象$scope.counts = {};
function getEventsCount(calendarId) {
if(calendarId !== '') {
calendarService.getCalendarEvents(calendarId, fromDate, toDate).then(function (result) {
if(isSuccessResponse(result)) {
$scope.counts[calendarId] = result.events.length;
} else {
$scope.errorMessage = errorText + result.errorMessage;
}
});
}
}
模板:
<ul class="list-group">
<li class="list-group-item" data-ng-repeat="calendar in calendarList.calendars" data-ng-init="getEventsCount(calendar.id)">
<a roll="button" class="btn-link" data-ng-click="showCalendar(calendar.id, calendar.summary)">{{calendar.summary}} ({{counts[calendar.id]}})</a>
</li>
</ul>