2017-06-21 3 views
1

コントローラから角ストラップのモーダルを閉じるのに苦労している人がたくさんいます。私は答えのいくつかを持っていますが、実際には彼らはそれを違う方法で行います(私はコードスタイルを変更したくありません)。私は私のmodalFactoryを使用してモーダルを開き、私はmodalInstanceを持っていません。だから、私は確信が持てません。私はこれをどのように閉じることができますか?工場から電話をかけたときにコントローラから角ストラップのモーダルを閉じる方法

アングルブートストラップでは、私はuibModalInstanceを注入して関数を閉じるuibModalInstance.dismiss()を呼び出すことができます。しかし、どのように私は角ストラップのモーダルと同様のことをすることができます。ここで

は私の工場で:

(function (app) { 
'use strict' 

app.factory('modalFactory', ['$modal', function ($modal) { 

    var local = this; 
    local.modalInstance = ['$scope', 
     function ($scope) { 
       $scope.myVar = "Some variable input "; 
       $scope.closeModal = function(){ 
       console.log("CLose function has been called..") 
       // How I can close this. 
       } 
     }]; 

    return { 
     openMyModal: function (ip) { 
      $modal({ 
       templateUrl: 'myModal.html', 
       controller: local.modalInstance, 
       size: 'lg', 
       resolve: { 
        ip: function() { 
         return ip; 
        } 
       } 
      }) 
     } 
    } 
}]) 

})(アプリ);

完全なplunkrはhereです。

+0

あなたがチェックし、[ここ](http://plnkr.co/edit/NypD13l42zqkk7aH3K2p?p=preview) –

答えて

2

$scope.$hide()あなたの内にclodeModalメソッドを呼び出します。

(function (app) { 
    'use strict' 

    app.factory('modalFactory', ['$modal', function ($modal) { 

     var local = this; 
     local.modalInstance = ['$scope', 
      function ($scope) { 
        $scope.myVar = "Some variable input "; 
        $scope.closeModal = function(){ 
        console.log("CLose function has been called..") 
        $scope.$hide(); 
        } 
      }]; 

     return { 
      openMyModal: function (ip) { 
       $modal({ 
        templateUrl: 'myModal.html', 
        controller: local.modalInstance, 
        size: 'lg', 
        resolve: { 
         ip: function() { 
          return ip; 
         } 
        } 
       }) 
      } 
     } 
    }]) 
})(app); 

更新plunker:http://plnkr.co/edit/2FxoBzY0vQqdrxqptm6F?p=preview

+1

、$のscope' 'に' $のhide'メソッドを呼び出すことができますOMG、これはとても簡単でした。私は$ hide()を使ってテンプレート内のモーダルを閉じましたが、これは$ scopeで利用可能でなければならないとは考えていませんでした。私を助けてくれてありがとう。 – undefined

+0

確かに私は次の2分間はこれを受け入れることができません..私はすぐにそれを受け入れます – undefined

関連する問題