2014-11-24 183 views
4

沒有太多的w /搜索。我在這裏發現了一個類似的線程,但它對我來說並不適合。AngularModalService:將數據傳遞給控制器​​

這些例子表明Modal將得到一個單獨的控制器。看起來像這樣。

var app = angular.module('myApp', ['ngSanitize','angularModalService']); 
app.controller('SampleController', ['$scope', function($scope) { 

    $scope.showAlert = function() { 

     ModalService.showModal({ 
      templateUrl: "alertWindow.html", 
      controller: "AlertController", 
      inputs: { 
       title: "Add New Alert", 
      } 
     }).then(function(modal) { 
      modal.element.modal(); 
      modal.close.then(function(result) { 
       $scope.result = "blah"; 
      }); 
     }); 

    }); 
}]); 

app.controller('AlertController', ['$scope', function($scope) { 

    $scope.close = function(result) { 
     close(result, 500); 
    }; 
}]); 

我有的警告是,我希望模態對話框有一些SampleController默認值。我閱讀了服務,但我認爲這不適用於此。輸入:showModal()中的{}看起來很可疑,但我不確定從顯示模式窗口的位置獲取它的位置。我見過的其他例子只是提供了簡單的是/否按鈕或文本輸入w /空默認值。

+0

首先,它看起來像是有語法錯誤。當你定義你的控制器時,你錯過了一個方括號']'。另外,你的$ scope.showAlert不在你的SampleController中。 – 12hys 2014-11-24 01:47:55

+0

你是對的 - 謝謝你的擡頭。編輯。然而,那正是我在窗口中編輯它的易讀性時,因爲控制器中肯定會出現比在這裏需要顯示更多的信息。所以,我的問題依然存在。現在至少應該更容易閱讀代碼。 – 2014-11-24 02:13:16

+0

您不在SampleController中包含您的ModalService依賴項。你有沒有在任何地方定義ModalService? – 12hys 2014-11-24 02:19:03

回答

7

根據文檔,您將輸入注入模態控制器。由於標題是您在上面提到的輸入,因此您需要將模態控制器更改爲:

app.controller('AlertController', ['$scope', 'title', function($scope, title) { 
    $scope.title = title; 

    $scope.close = function(result) { 
     close(result, 500); 
    }; 
}]); 
+0

謝謝 - 現在在工作,但我會回家時檢查。 – 2014-11-24 15:32:38

+0

這工作。謝謝。對不起,我花了很長時間纔回到它。 – 2014-11-29 05:58:56

+0

謝謝它爲我工作。把這個標題傳回給SampleController怎麼樣?任何人都可以幫助我。 – 2016-10-21 09:35:28