2017-09-20 10 views
0

私は毎回のページが同様に開かれuibModalを開封しております:異なるファイルからのブートストラップuibmodalを閉じる

genres.js

 app.controller('genresController', ['$scope', '$http', '$uibModal', 'blockUI', 'notifyService', 'lib', 
function ($scope, $http, $uibModal,blockUI, notifyService, lib) { 
     $scope.genres = []; 
     var init = function() { 
      //Initial code 
      loadGenres(); 
     }; 


     var loadGenres = function() { 

      /*... some non-important codes... */ 

      openFavoriteGenreDialog(); 

      /*... some non-important codes... */ 

      }, lib.handleError); 
     }; 

     var openFavoriteGenreDialog = function() { 
      var modalInstance = $uibModal.open({ 
       templateUrl: '/Dialog/FavoriteGenre', 
       controller: 'favoriteGenreDialogController' 
      }); 
      modalInstance.result.then(function (msg) { 


      }, function (msg) { 
       //dismiss callback 
      }); 
     }; 

     init(); 
}]); 

とモーダルコントローラは別のファイルとhtmlでありますそのモーダルのキャンセルボタンがあります。

FavoriteGenre.cshtml

ボタンは、これまでのところ

favGenrer.js

$scope.cancel = function() { 
     var modalInstance = $uibModal.open({ 
      templateUrl: '/Dialog/FavoriteGenre', 
      controller: 'favoriteGenreDialogController' 
     }); 
     modalInstance.close(); 
    }; 
のように見える機能を持っている別のコントローラで処理beeingてキャンセル
 <button class="btn btn-default" type="button" ng-click="cancel()">Cancel</button> 

その構造のために、私はモーダルEAを開いたり閉じたりしています私はキャンセルボタンを押します。とにかく、cancel()関数が別のファイル内の別のコントローラにあっても、閉じるボタンを押すとモーダルを閉じることができますか?私は、genres.jsにcancel()関数を入れようとしましたが、genresControllersの他のメソッドのために、erresを大量に取得することなく、genresControllerをhtml呼び出しすることができませんでした。

ANSWER

見つけます!問題はFavoriteGenre.cshtmlに私はちょうどそれのようであるとするために必要な

<div ng-controller="favoriteGenreDialogController" block-ui="genresContentDiv"> 

をしていたということでした。

<div block-ui="genresContentDiv"> 

、それは

$scope.cancel = function() { 
     $uibModalInstance.dismiss('cancel'); 
    }; 
+0

私が理解しているように、別のコントローラにある機能を実行しようとしています。私はそうです... – Raghav

答えて

0

を使用して働いていた、これを試してみてください。

$scope.cancel = function() { 
     $uibModalInstance.dismiss('cancel'); 
    }; 
+0

"$ uibModalInstance is not defined"というエラーが出るだけです。私がそれを注入すると、モーダルは閉じず、必要なように動作を停止します。 –

関連する問題