我花了一些時間來玩AngularJS Bootstrap彈出窗口,意圖很好,但我想要做的就是綁定它,並且它是依賴腳本到同一個控制器,我不能現在開始工作就是關閉按鈕。如果我創建一個新的控制器,並注入$ modalInstance它工作得很好,我可以wireup關閉按鈕沒有任何問題,但我不想第二個控制器,它似乎是複雜化:我想我的所有控制器邏輯在formController中真的。
爲什麼我實際上需要兩個控制器?在兩個控制器之間傳遞範圍對我來說似乎有些過分,而且越大的項目變得越不可管理。我是否試圖過度簡化這不必要的? :)
腳本:
(function(){
var app = angular.module('ngModalDemo', ['ui.bootstrap'])
.controller('formController', function($scope, $modal){
$scope.openModal = function() {
var modalInstance = $modal.open({
templateUrl: 'SomeModal.html',
controller: 'formController'
});
};
$scope.closeModal = function() {
// Code needed here :)
};
})
})();
的HTML體(原諒了DEMO的目的腳本的HTML):
<div ng-controller="formController">
<button class="btn btn-default" ng-click="openModal()">Let's do some stuff!</button>
<script type="text/ng-template" id="SomeModal.html">
<div class="modal-header">Do some stuff in this modal y'all.</div>
<div class="modal-footer">
<button class="btn btn-info" ng-click="closeModal()">Close</button>
</div>
</script>
</div>
基於卡斯帕爾斯輸入:)
答案(function(){
var app = angular.module('ngModalDemo', ['ui.bootstrap'])
.controller('formController', function($scope, $modal, $log){
$scope.openModal = function() {
var modalInstance = $modal.open({
templateUrl: 'SomeModal.html',
controller: [
'$scope', '$modalInstance', function($scope, $modalInstance){
$scope.closeModal = function() {
$modalInstance.close();
};
}
]
});
};
})
})();
一個獨立的模態控制器的偉大工程,如果模式將是由許多控制器 – gaurav5430 2015-12-02 18:02:54