2016-07-24 148 views
0

我有2次,每一個有一個控制器,我想從視圖1將數據發送到視圖2,當我點擊「BL」按鈕:共享數據

這是視圖1: enter image description here

,這是視圖2: enter image description here

我試圖用事件my try,但控制器2將只有當我點擊「BL」按鈕 激活我想用一個服務從發送數據控制器1到控制器2,但是我認爲這不是我的情況 所以請有任何幫助,我怎樣才能從視圖1將數據發送到視圖2 感謝

編輯: 這是我第二次嘗試:

視圖1 /控制器1:

$scope.BLButton = function(){ 


    $scope.foo = Service.foo; 
    Service.foo = '85'; 

    } 
    .factory('Service', function() { 
            var Service = { 
             foo: '85' 
             }; 
             return Service; 
            }); 

視圖2 /控制器2:

//this method is called to display the data in the input Text from a web Service 
$scope.parentmethod = function() { 
    //traitement 
$scope.foo = Service.foo; 
.... 
} 

我的代碼的問題是,續之法「parentmethod」當我點擊「BL」按鈕時,從不會調用roleller2

+2

有幾種方法可以實現這一點(共享服務,組件)。發佈你的代碼以獲得更好的幫助 – dfsq

+3

你通常想看的第一件事就是使用服務在應用程序的各個部分之間共享數據。您的圖片價值不大,請提供[mcve] – charlietfl

+0

我已更新我的帖子Sir – user3821206

回答

1

最好的方法是將您的所有業務邏輯(BL)移動到將維護應用程序狀態的服務。您試圖以某種方式濫用控制器,因爲他們唯一的目標是粘貼呈現和BL,而不是以任何形式持有應用程序狀態。問題在於控制器在視圖更改時被創建和銷燬,因此它們不適合作爲狀態持有者。在您的情況下,您可以將數據存儲在服務中(在您的應用程序工作時實例化並保持活動),然後在控制器的另一個視圖中檢索它。