我的控制器是
function calendarEventsController($scope) {
var angUserEvents = [];
// get data to array from json
$scope.returnUserEvents = function(userDate){
for (var i = 0; i <= angUserEvents.length-1; i++){
if (angUserEvents[i].start == $.datepicker.formatDate('yy-mm-dd', userDate))
{
var dateToShow = angUserEvents[i];
$scope.userEvents = dateToShow;
//return;
}
};
};
$scope.userEvents = angUserEvents;
};
好的,它运作良好。检查此控制器的范围,我看到对象列表userEvents
,它由ng-repeat成功呈现。
<ul>
<li ng-repeat="userEvent in userEvents">
{{userEvent}}
</li>
</ul>
在此之后,我通过$scope.returnUserEvents
在控制器中操作此列表,选择其中的一个对象。为了确保数据正常,我再次检查控制器的范围,我看到长度userEvents
已经改变 - 这就是我需要的。
在此之后,我认为ng-repeat必须重新呈现(因为$scope.userEvents
已被更改),但事实并非如此。
答案 0 :(得分:3)
如果您在$ digest周期之外更新了userEvents,则需要调用
scope.$apply()