感謝您的幫助。我做了上面提到的事情。我在每個li上運行一個init函數,每個函數都屬於一個任務。以下是init函數:
$scope.setOptionsMessage = function(task) {
if(task.asigneeId) {
task.optionsMessage = $scope.fullName(task.user);
task.optionsMessage += ' | ';
}
else {
task.optionsMessage = 'Not assigned | ';
}
if(task.dueDate) {
task.optionsMessage += 'Due on: ' + task.dueDate;
}
else if(task.dueEvent === $scope.NEXT_APPOINTMENT) {
task.optionsMessage += 'Due at next appointment';
}
else {
task.optionsMessage += 'No due date';
}
}
這會爲每個任務對象添加一個optionsMessage屬性,以便它可以用作每個任務的消息。這裏是與該部分代碼相關的html(slim):
li [ng-repeat='task in uncompletedTasks' ng-init="setOptionsMessage(task)" class='patient-task repeated-item']
span ng-hide="editing"
input type="checkbox" ng-click="markComplete(task)"
span class="task-text" {{task.text}}
span class="task-popover-link"
span class="click-link" ng-click="optionsShow=!optionsShow"
| {{task.optionsMessage}}