2015-02-10 32 views
1

我有一個網頁,我已經實現了引導模態對話框。我想從模塊對話框中的按鈕單擊主控制器中調用一個方法,我想將值傳遞給方法。我怎樣才能做到這一點。Twitter引導模式從父控制器調用方法

+0

使用工廠,您可以通過控制器「共享」方法和屬性。 – klauskpm 2015-02-10 19:37:46

回答

1

看看這個plnkr我創建:http://plnkr.co/edit/2VuKmVidfMpnkSigeips?p=preview

這是你如何創建一個模式對話框:

$scope.onClick = function() { 
     var modalInstance = $modal.open({ 
     templateUrl: 'content.html', 
     controller: 'ModalInstanceCtrl', 
     size: 'sm', 
     resolve: { 
      item: function() { 
      return $scope.item; 
      } 
     } 
     }); 

     modalInstance.result.then(function (returnedInput) { <-- This is where you expect the value passed to modalInstance.close(value). 
     $scope.test = returnedInput; 
     }, function() { 
     // dismissed with cancel button 
     }) 

    }; 

的想法是調用close(),當您按下OK:

$modalInstance.close($scope.myinput); 

將數據從模態對話框的控制器傳回主控制器。

編輯: 我更新了plnkr,以顯示如何在不關閉模式的情況下直接從模態中更改主控制器中某個項目的狀態。本質上,你想調用模態中的某個方法來改變主控制器中對象的狀態。

+0

感謝restassured !!!,在這裏你實際上正在關閉模態對話框並返回到主頁面,但我仍然希望在函數調用之後仍保留在模態對話框中。 '關閉'是由bootstrap給出的方法。我可以使用我自己的方法,因爲我不希望我的模式被關閉。 – 2015-02-10 23:29:56

+0

我的編輯是否回答您的問題,還是您需要更多說明? – restassured 2015-02-11 00:50:07

+0

謝謝你放心。這看起來不錯,讓我嘗試實現這一點。希望這能解決我的問題。我有一個全局根控制器說WrapperCntrl作爲我的應用程序中的所有其他控制器的父項。這WrapperCntrl擁有我需要在我的應用程序中的常用功能。現在,我的父控制器說cntrlA,這是我的模態cntrlB的父。當我在我的模態上使用btn時,我想從我的cntrlA中調用一個方法,該方法將依次調用WrapperCntrl中可用的常用方法。我甚至需要傳遞參數 – 2015-02-11 17:26:21

相關問題