如何使$ scope。$ broadcast在Ipad中工作?

时间:2019-04-16 06:44:14

标签: angularjs ipad mobile-devices

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

但是它不会进入$scope.$on,它是在Ipad浏览器镶边中的controller1中编写的。

我尝试了不同的方法来使其工作。将controller1导入controller2,依此类推。但是,然后浏览器中的变量无法反映其值。

controller1中的

$scope.$on

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

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

控制器2:

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

谁能告诉我这是怎么回事?或者我也可以通过哪种方式为Ipad进行这项工作。

1 个答案:

答案 0 :(得分:1)

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

如果您的控制器不相关(作为父母或孩子),那么仅$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中加载了所需的控制器。