2016-07-19 5 views
0

Ich benutze Morris-Grafik und ich bin mit dem Problem konfrontiert, dass das Diagramm nicht angezeigt wird, wird nur angezeigt, wenn das Fenster wie Zoom vergrößern oder verkleinern.Morris-Grafik wird nicht angezeigt und nur bei der Größenanpassung des Fensters angezeigt

-Code ist unten angegeben:

Html Seite

 <div class="content" ng-controller="SuperUserController"> 

     <LineChart xkey="xkey" ykeys="ykeys" labels="labels" ng-show="lineChart" ></LineChart> 
    <i class="fa fa-area-chart" ng-click="graphSet(1)"></i> 

</div 

Angular js Datei

myapp.controller('SuperUserController',function(dataFactory,Flash,$scope,$http){ 
    $scope.graph=true; 
    $scope.lineChart = false; 

    $scope.xkey = 'xAxis'; 
    $scope.ykeys = ['yAxis']; 
    $scope.labels = ['unit']; 
    $scope.myModel = []; 

    $scope.graphSet=function($id) { 
     $scope.deviceId=$id; 
     dataFactory.httpRequest('/graph/yesterday/' + $id).then(function (data) { 
      if (Object.keys(data).length !== 0) { 
       $scope.graph = true; 
       $scope.lineChart = true; 

       $scope.myModel = data; 
     } 

    }); 

    } 
myapp.directive('linechart',function(){ //directive name must be in small letters 

    return { 
     // required to make it work as an element 
     restrict: 'E', 
     template: '<div></div>', 
     replace: true, 
     link:function($scope,element,attrs) 
     { 

      var data = $scope[attrs.data], 
       xkey = $scope[attrs.xkey], 
       ykeys = $scope[attrs.ykeys], 
       labels = $scope[attrs.labels]; 
      $scope.$watch("myModel", function (newValue) { 
       data = newValue; 
       console.log(newValue); 

       Linechart.setData(newValue); 

      }); 
      config = { 
       element: element,//element means id # 
       data: data, 
       xkey: xkey, 
       ykeys: ykeys, 

       labels: labels, 
       parseTime: false, 
       pointFillColors: ['#D58665'], 
       lineColors: ['#0b62a4'], 
       smooth: true, 
       hideHover: 'auto', 
       pointSize: 4, 
       axes: true, 
       resize: true, 
       fillOpacity: 1.0, 
       grid: true, 

      } 


       Linechart = Morris.Line(config); 



     } 
    } 


}) 

Wenn Sie auf das Symbol der Linechart Element dargestellt ist, aber Graph nicht shown.Only gezeigt wenn die Größe des Fensters geändert wird.

Antwort

0

hatte ich das gleiche Problem

Verwendung ng-if = "Liniendiagramm" statt ng-show = "Linechart"

+0

Yes..Answer ist right.my Problem gelöst worden. – User101

+0

wenn ich ng-if verwende, zeigt es eine halbe Grafik und wenn hinein- oder herausgezoomt wird, dann zeige volle Grafik an. – User101

+0

Wenn Sie Grafik basierend auf Button klicken klicken Sie auf click event..try löschen ältere Grafik zuerst .. –