簡體   English   中英

廣播且無法正常工作

[英]Broadcast and on not working as desired

我正在嘗試從第一個控制器進行廣泛的轉換,並在另一個控制器上監視該變量,並期望在第二個控制器上進行一些更改。 但是它不起作用。

以下是第一個控制器代碼

$scope.gotoKBPage = function()
      {
         $location.path('/kb');
         $rootScope.$broadcast('newVar',{id: "123"});
      };

下面是第二個控制器代碼,即/ kb頁面

  $scope.newPage = function()
  {
      $scope.pernotes     = true; // this makes a section visible, but not happening
  };

   $rootScope.$on('newVar', function(event, data)
   {
    if(data)
    {
        $scope.newPage();
    }
   });

為了使此方法生效,我需要做任何明確的事情。

嘗試這個:

 $scope.newPage = function()
  {  
       $scope.$apply();
       $scope.pernotes     = true; // this makes a section visible, but not happening
  }

編輯:我已經測試。 它也應該在沒有$ apply的情況下工作。 檢查此鏈接: 小提琴

我認為您使用的是錯誤的方法。 如果只想將參數傳遞給新控制器,為什么不使用route參數呢? 請參閱本文檔頁面末尾的示例

請注意,在您的代碼中,您是在廣播消息后注冊$on的,因此它將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM