我正在使用 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/