点击按钮,我正在使用ng-show
来显示div。
div ng-show
- ing包含课程安排,其中包含动态更新的课程,用户点击并添加课程。
但是当这个课程计划被触发显示时,它处于陈旧状态。没有课程出现。
有关为什么所有添加的课程数据实际上没有显示的任何见解?在ng-show
刷新数据状态后,是否需要执行一些特殊操作?
HTML:
<div id="schedule-div" ui-calendar="uiConfig.calendar" ng-model="eventSources" ng-show="scheduleMode" calendar="weekView"></div>
JS:
// Event handle for "Generate Schedule" button
$scope.getSchedules = function () {
scheduleFactory.getSchedules($rootScope.addedCourses).
success(function (data) {
var scheduleListing = angular.fromJson(data);
// Create closure with current scheduleListing
scheduleInstance = renderSchedule(scheduleListing);
scheduleInstance(0);
// $scope.events is the data used
// This log correctly, logs data
console.log($scope.events);
// Toggle the ng-show
$scope.scheduleMode = true;
}).
error(function() {
$window.alert("Schedules not found.");
});
};
正如您所看到的,这一切都发生在来自服务器的回调中(我不认为这应该重要)。 console.log()
正确显示数据,因此在切换ng-show
时数据确实存在。
当ng-show
逻辑完全删除后,数据在计划视图中正确更新。所以问题必须在ng-show
显示陈旧状态的某处。
答案 0 :(得分:0)
检查您的数据来源。 ng-show不关心内容。它只是使容器显示:无或显示:基于条件阻止。
您的数据源未获得更新。
如果您有任何示例而不是发布。
答案 1 :(得分:0)
代码
之后// Toggle the ng-show
$scope.scheduleMode = true;
添加
$scope.apply()
答案 2 :(得分:0)
您正在使用ng-model=eventSources
在日程表列表中设置数据。它似乎没有更新,因为eventSources
代码中没有使用变量getSchedules()
。这可以控制div
内的更新内容。
ng-show
仅显示或隐藏div,不控制其中任何其他内容。