如何让 $scope.$broadcast 在 Ipad 中工作?

how to make $scope.$broadcast work in Ipad?

我有两个控制器,比如 controller1 和 controller2。 我在 controller1 中定义了名为 function1 的函数。 当我尝试使用 $scope.$broadcast 从 controller2 调用 function1 时,它在桌面浏览器中工作正常。

但它不会进入 Ipad 浏览器 chrome.

中写在 controller1 中的 $scope.$on

我尝试了不同的方法来实现它。将 controller1 导入 controller2 等等。但是浏览器中的变量并没有反映它的值。

$scope.$on 控制器 1:

$scope.$on("con1function", function(event, activity, action) {

    $scope.function1(activity,'dashboard');
})

控制器 2:

$scope.con2function = function() {
    $scope.$broadcast("con1function",data[0], '');
}

谁能告诉我这里出了什么问题?或者我可以通过什么方式使 Ipad 也能正常工作。

您可以尝试 $rootScope.$broadcast("con1function","Hi there") 广播消息并 $scope.$on() 接收消息。

如果您的控制器不相关(如 parent 或 child),那么 $scope.broadcast$scope.emit 可能无法正常工作。

 var myApp = angular.module('myApp',[]);
 myApp.controller('controller1', function ($scope,$rootScope) {
     $scope.sendMessage = function(){
      console.log("in sendMessage");
      $rootScope.$broadcast("con1function","Hi there")
     }
    });
  myApp.controller('controller2', function ($scope,$rootScope) {
      console.log("in controller2");
      $scope.$on("con1function", function(event, activity) {
        console.log('dashboard',activity);
      });
    });

还要确保在您的脚本或 HTML 中加载了所需的控制器。