我有下一个代码部分:
<ul class="list-group" ng-init="curMarks=getTaskVotesModalInfo(task)">
<li ng-repeat="info in curMarks" class="list-group-item">
<span>{{info.worker}}</span>
<span class="badge">{{info.mark}}</span>
</li>
</ul>
一切都很好。但是当任务更新时 - getTaskVotesModalInfo()
不会重新计算数据。
task是$scope.Tasks
数组的一部分。
我该如何解决?
Upd:getTaskVotesModalInfo函数
$scope.getTaskVotesModalInfo = function(task) {
var taskId = task.id;
var result = {};
angular.forEach($scope.ScrumWorkers, function(value) {
var curWorkerId = value.value;
if (curWorkerId == 0) {
return;
}
result[curWorkerId] = {
mark : 'not voted',
worker : 'not set'
};
result[curWorkerId].mark = $scope.TasksVotes[taskId][curWorkerId];
result[curWorkerId].worker = value.text;
return result;
}
答案 0 :(得分:1)
问题是'ng-init'只执行一次。
您可以直接在ng-repeat中使用'getTaskVotesModalInfo(task)'函数,而不是在ng-init中启动curMarks。然后angular将处理更新。
<li ng-repeat="info in getTaskVotesModalInfo(task)">
以下是一个示例:Plunker
更优化的示例,其中'curMarks'列表仅在任务更改后更新:Optimized Plunker