2015-11-22 85 views
0

我在網站中有兩個獨立的角度模塊,我想在模塊之間進行事件處理。我不能在它們之間有一個共同的父模塊或控制器,因爲它們之一是一個頭文件模板,它們是一個常見的正文html文件,其中根據頁面包含部分文件(頭文件是常量)。總之,我有技術上的限制。 這裏是我的情況很短的簡短: 我已經定義了一個服務,它有這個模塊,它是在頭中的值如何在兩個模塊之間傳遞事件數據

var sharedServices = angular.module('sharedServices',[]); 
sharedServices.value('currentFeed',{ 
'post': {} 
}) 

,我想根據我的行動來改變值,在此情況下,我改變對點擊的李值:

<li ng-click="changeFeed()"></li> 

var navApp = angular.module('navApp',['sharedServices']); 
navApp.controller('navController',['$scope','$http','$rootScope','currentFeed',function($scope,$http,$rootScope,currentFeed) { 
    currentFeed.post = 'initial value'; 
    $scope.changeFeed = function() { 
      currentFeed.post= 'changed value'; 
    }); 
}]) 

這是模塊,其中我想顯示更改後的值:

var feedApp = angular.module('feedApp',['sharedServices']); 
    feedApp.controller('FeedController',['$scope','currentFeed',function($scope,currentFeed) { 
    $scope.currentFeed = currentFeed.post; 
    }]); 

但價值沒有得到預期我猜更新:

 {{ currentFeed }} // this always remains 'initial value' 

我不能用$發出,美元因爲我沒有一個共同的rootscope ..

如何實現這一目標?

感謝

+1

我想你應該定義一個模塊,以及加入其他人的依賴關係。 在這種情況下,您將擁有常見的$ rootscope,然後您可以$廣播或發出一個事件。 – Ashot

+0

不喜歡使用活動。我更喜歡一個** $ watch **,他們不想使用getter函數。 – Neozaru

+0

@Ashot當我們定義一個模塊並添加下兩個模塊作爲它的依賴時,我如何在控制器 – Aakash

回答

0

你可以做的是一個功能你$範圍,而不是一個值綁定。

$scope.currentFeed = currentFeed.post; 

變爲

$scope.getCurrentFeed = function() { return currentFeed.post; } 

而且你可以用它從你的模板函數(getCurrentFeed()

+0

這不起作用,視圖中的值沒有改變 – Aakash

相關問題