2014-12-04 4 views
0

버튼을 클릭하면 div를 표시하기 위해 ng-show을 사용하고 있습니다.각 : ng-show 오래된 상태

div 저는 ng-show입니다. 사용자가 클릭하고 코스를 추가 할 때 동적으로 업데이트되는 코스가있는 수업 일정이 포함되어 있습니다.

그러나이 과정 일정이 표시되도록 트리거되면 진부한 상태입니다. 코스가 나타나지 않습니다.

추가 된 모든 강의 데이터가 실제로 표시되지 않는 이유에 대한 통찰력이 있으십니까? 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."); 
     }); 
}; 

이 모든 서버에서 콜백에서 어떤 일이 일어나고 볼 수 있듯이 (I이 비록 문제한다고 생각하지 않습니다). console.log()은 데이터를 올바르게 표시하므로 ng-show 토글 할 때까지이 존재합니다.

로직이 ng-show이면 로직이 이면 완전히 삭제됩니다. 일정보기에서. 따라서 문제는 ng-show의 어딘가에 있어야합니다.

+0

@Manish에 따르면, 적어도 plunker 또는 코드를 게시하십시오. –

답변

0

데이터 소스를 확인하십시오. ng-show는 내용에 관심이 없습니다. 조건을 기반으로 컨테이너 표시 : 없음 또는 표시 : 차단 만하면됩니다.

데이터 원본이 업데이트되지 않습니다.

게시물의 예가있는 경우 당신은 일정 목록에 데이터를 설정하는 ng-model=eventSources을 사용하고

$scope.apply() 
0

코드 뒤에

// Toggle the ng-show 
$scope.scheduleMode = true; 

추가. 변수 eventSources이 (가) getSchedules() 코드에서 사용되고 있지 않으므로 업데이트 된 것으로 보이지 않습니다. 이는 div 내부에서 업데이트되는 내용을 제어합니다.

ng-show은 div를 보여 주거나 숨기고 그 안의 다른 것은 제어하지 않습니다.