如何在使用 angularjs 更新控制器中的新数据之前销毁莫里斯图表数据?

2024-03-24

我正在使用 angularjs 根据所选项目加载图表。如果我选择第一个项目,我将在控制器功能中获取详细信息并显示它。当我选择下一个项目时,图形加载,但第一个选定项目的详细信息不会被破坏。如果我选​​择 4 个项目,则显示 4 次图形。如何清除莫里斯图表中的数据?

<!-- begin snippet: js hide: false console: true babel: false -->
     app.controller('MorrisCtrl', ['$rootScope', '$scope', '$state','loadhiscpuservice',  function ($rootScope, $scope, $state,loadhiscpuservice) {
   getgraphdetails();
$scope.getserverdetails = function (server) {
       // $state.go($state.current);
        $scope.serveridvalue = [];
        var serverid = [];
        $scope.serveridvalue = server;
        serverid = $scope.serveridvalue.serverID;

        var date = new Date();
        $scope.formattedDate = $filter('date')(date, "dd/MM/yyyy hh:mm:ss a", 'UTC');
        var date1 = $scope.formattedDate; 
        //chart1.destroy();      
        getgraphdetails(serverid, date1);      
    };
    function getgraphdetails(serverid, date1) {
        var details = { serverID: serverid, minutes: "180", date: "date1" };
        loadhiscpuservice.getCPUvalues(details).
              success(function (results) {                
                  alert(results);
                  var value = JSON.parse(results);
                  drawMorrisCharts1(results);
              })
              .error(function (error) {
                  $scope.result = 'Error Occured : ' + error;
              });
    };
     function drawMorrisCharts1(results2) {
            var points = [];
            points = results2;
            Morris.Area({
                element: 'area-chart2',
                data: points,
                xkey: 'lastUpdatedDateTime',
                ykeys: ['value'],
                labels: ['value'],
                parseTime: false,
                pointSize: 2,
                hideHover: 'auto',
                lineColors: [$rootScope.settings.color.themesecondary]
            });
        };
        })

    app.factory('loadhiscpuservice', function ($http) {
        return {
            //load d0ta service    
            getCPUvalues: function (details) {
                var request = $http({
                    method: 'POST',
                    url: 'http//abc link',              
                    data: { aaa: details.aaa, minutes: details.minutes, date: details.date }
                });
                return request;
            }
        };
    });
<!-- language: lang-css --> 'lib/jquery/charts/morris/raphael-2.0.2.min.js', 'lib/jquery/charts/morris/morris.js', 'app/controllers/morris.js' <!-- language: lang-html -->
    <div ng-controller="MorrisCtrl">
    <div class="orders-container">
            <div class="orders-header">
                <h6>Servers List</h6>
            </div>
            <ul ui-sref-active="active" class="orders-list" onscroll="true">
                <li class="order-item">
                    <div class="row">
                        <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4 item-left">
                            <div class="item-price">Servers: </div>
                        </div>
                        <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8 item-right">
                            <div class="input-group">
                                <select ng-options="server.serverName for server in serverDetails1" class="form-control" ng-model="server" ng-change="getserverdetails(server)">
                                    <option value="">--Select Server--</option>
                                </select>
                                <span class="input-group-addon">
                                    <i class="fa fa-desktop"></i>
                                </span>
                            </div>
                        </div>
                    </div>
                </li>
            </ul>
        </div>
        <div class="row">
            <div class="col-xs-12 col-md-12 col-lg-12">
            <div id="area-chart2" class="chart chart-lg"></div>
          </div>
         </div>

我遇到了类似的问题..这就是我解决它的方法。 在绘制新图表之前,使用 .empty 清除 div。

$("#area-chart2").empty();

就这样。就像魔术一样。

希望这能解决你的问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用 angularjs 更新控制器中的新数据之前销毁莫里斯图表数据? 的相关文章

  • AngularJS 过滤器精确匹配

    我需要按类别过滤项目列表 我希望用户能够单击按钮 然后将过滤器应用于列表 目前 我已经在一定程度上做到了这一点 比方说 我有一个电影列表 呈现如下 li movie title li 我还有一个电影类型列表 呈现为按钮 单击时将过滤电影列表
  • 什么是“更便宜”的性能明智的 $broadcast 或 $watch

    我的应用程序中有一种情况 每次用户的角色发生变化时 我都需要重新加载菜单 一个用户可以在多个公司中拥有角色 我想知道解决这个问题的最佳方法是什么 目前我正在做以下事情 app controller menuLoadingCtrl funct
  • 如何在 AngularJS 初始化之前防止元素显示( ng-show )

    在AngularJS中 我想知道如何防止在ng show生效之前页面上显示的元素 我发现一些帖子谈论ng cloak 但在我的情况下似乎不起作用 可能ng cloak是为了防止双花括号而不是 Element 样式 有人谈论的另一种方式是在
  • 页面刷新后如何注销用户?

    我正在跟进谷歌的指南 https developers google com identity sign in web sign in sign out a user注销用户 考虑到gapi auth2刷新页面后将是未定义的 我正在做 if
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • 单击菜单外部以关闭菜单时,Bootstrap 导航栏“闪烁”

    我遇到了导航栏问题 当您单击菜单外部以关闭菜单时 导航栏会出现 闪烁 如果在单击菜单外时按住鼠标 则闪烁会持续存在 如下所示 我认为这可能与角度有关 而不是与CSS有关 主要是因为其他人未能在小提琴上复制它 上一个问题在这里 https s
  • 如何在 Angularjs 中正确将 JSON 响应解析为 ng-repeat

    我希望能够使用ng repeat为了解析我在前端的响应 我在解析具有多个项目与单个项目的响应时遇到问题ng repeat list 我能够解析 但我必须创建 2 个不同的列表ng repeat在前端进行配置并添加一些丑陋的逻辑 以便在数组长
  • 角度模拟“模块”导致“[对象对象]不是函数”

    我正在尝试使用通过 Teaspoon 运行的 Jasmine 在 Angular 中创建一些单元测试 测试正在运行 但是我有一个简单的测试只是为了测试失败的控制器是否存在 我有以下测试设置 require spec helper requi
  • 按 ng-repeat 中的对象键排序

    如何按整数键排序 我有以下对象 scope data 0 data ZERO 1 data ONE 2 data TWO 3 data TREE 5 data FIVE 6 data SIX 10 data TEN 11 data ELEV
  • 如果文本过滤器在 ng-repeat 中没有返回结果,则显示消息

    假设我们有一个带有文本过滤器的 ng repeat
  • 具有动态数据的莫里斯图

    我在我的应用程序项目中使用莫里斯图来显示有关销售量的一些详细信息 执行AJAX请求后 图表以无序的方式显示数据 它不显示每个城市的销售额 我想像这个例子一样用静态数据显示它们http jsfiddle net marsi LaJXP 1 h
  • angularjs - 当 $interval 触发时 ng-show 不会更新类

    尝试使用 Angular 中的 interval 来使用 ng show 更改列表中当前可见的项目 检查 html 我注意到角度将 ng show 从 true false 更改 但它并没有删除 ng hide 类 html 很简单 h1
  • 在 angularjs 中的某些字段上设置条件焦点[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 您好 所有工程师同事 我看到了很多问题 并提出了关于将焦点设置在某些输入字段上的答案 但我没有找到任何可以满足我的要求的
  • UI 路由器和查询参数

    我使用 Angular UI Router 和 Elasticsearch 构建了一个小型搜索应用程序 并尝试在结果页面的 url 中获取 UI Router 查询参数 我正在努力实现这个目标 domain com search user
  • Google 地图第二次无法加载 - AngularJS

    我正在使用 GoogleMap API angular google maps js 包 并且我有一个非常奇怪的行为 The first time I load it i get the full map loaded like here
  • 角度指令忽略非数字输入

    我必须为 IE8 编写一些代码 我有一个 ng repeat 创建一个表 其中包含
  • AngularJS 控制器等待响应(或设置回调)

    我有一个带有controllers js 和factories js 的AngularJS 应用程序 我喜欢用控制器中的值 我从工厂获得 做一些事情 我的问题是 当我访问这些值时它们是空的 我怎样才能等待回复 或者在哪里可以添加回调 Fla
  • 角度引导手风琴数据绑定问题

    我有 2 个相同型号的下拉菜单 一个位于手风琴内部 另一个位于外部 外部下拉菜单在 2 路数据绑定方面工作良好 但手风琴内部的下拉菜单似乎只有 1 路绑定 换句话说 在 UI 中选择并不会设置模型值 我找到了一个建议here https s
  • 未定义,当从 Selenium 触发时,Chrome 通知中未定义

    我正在致力于自动化一个用 Python 编写的网站 并使用 Angular 其中有很多确认通知 我遇到的问题是 Behat 似乎无法识别这些通知 更不用说允许我与它们交互了 我附上了通知的屏幕截图 以及 Behat 生成的 未定义 未定义
  • 无法启动 Angular-phonecat,安装后脚本失败[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我目前正在设置一个 vagrant box 来开始开发实验性的 node js angularjs 应用程序 由于我刚刚开始使用

随机推荐