[英]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.