javascript - OnClick `ngClick` 图标我们是 `broadcasting` `refresh` 事件。但它不起作用

标签 javascript jquery angularjs

我正在使用 Angular 和 jquery float 来绘制图表。图表是 Canvas 元素。

我想在单击某个图标时重新绘制 Canvas .. 单击的处理程序是 toggleSideMenu。图标的 OnClick ngClick 我们正在广播 refresh 事件。但它不起作用。

如果我将调试器放入它可以工作的函数中..

我的JS代码-

 this.toggleSideMenu = function () {
    //  this.setSideMenuState(!this.sidemenu);
    $("#sidemenu-canvas").toggleClass("toggled");
    $timeout(function () {
      $rootScope.$broadcast("refresh");
    }, 50);
    $timeout(function () {
      $rootScope.$broadcast("render");
    }, 50);
  };

而不是给予 -

$timeout(function () {
      $rootScope.$broadcast("refresh");
    }, 50);

我已经给了

$rootScope.$broadcast("refresh");

我也有监听器-

$scope.$on('refresh', function() {
         if(!$scope.isDRPDisabled) {
           $scope.refresh();

      });

但它不起作用。 请帮助我..

最佳答案

您在 $rootScope 上广播,并且您的监听器位于 $scope 上。这是两个不同的“范围”,无法收听对方的广播。除非您想要不同的 Controller 来捕获刷新事件,否则我建议将广播保留在 $scope 内。喜欢:

this.toggleSideMenu = function () {
    //  this.setSideMenuState(!this.sidemenu);
    $("#sidemenu-canvas").toggleClass("toggled");
    $timeout(function () {
      $scope.$broadcast("refresh");
    }, 50);
    $timeout(function () {
      $scope.$broadcast("render");
    }, 50);
};

但除此之外,您的监听器也应该是 $rootScope。

关于javascript - OnClick `ngClick` 图标我们是 `broadcasting` `refresh` 事件。但它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38519030/

相关文章:

javascript - IconButton onClick 事件在 onLoad React 中启动

javascript - HTML 随 element.setAttribute ("onclick","alert(' Test') ;") and element.onclick = "alert ('Test' );"; 变化

javascript - 在复杂菜单中添加事件类

jquery - jquery 新手 - jquery 弹出

javascript - 如何在单击某些按钮时在jsp中切换div

javascript - 将数据从 ASp.NET MVC Controller 传递到 JavaScript 函数

javascript - 删除类 onclick ... angular js

angularjs - 如何访问 angularjs 中的 $rootscope 变量?

javascript - 使用 jQuery/JavaScript 将元素向右浮动

ios - 如何识别 ionic 和 ios 上的 401 和 408(超时)错误?