1

ユーザーがモーダルウィンドウで製品に関する詳細を開くことができる角度のあるアプリがあります。モーダルには対応する URL があります (/product/:id)。アプリの要件は、ユーザーが表示しているさまざまな製品に対して、この状態の複数のモーダルを重ねて開くことができる必要があることです。例: /product/1、/product/2... ルーティングのコードは次のとおりです。

$stateProvider.state('product', {
url: '/product/:id',
onEnter: ["$modal", function ($modal) {
   $modal.open({
      templateUrl: '/App/product/product.html',
      controller: 'ProductController',
      controllerAs: 'vm'
   });
}]             

});

問題は、製品の新しいモーダルを開くと、以前に開いたこの状態の他のすべてのモーダルが、最新の製品のデータを使用して ProductController を再実行することです。1 つのコントローラーの異なるインスタンスを並行して実行するにはどうすればよいですか?それぞれに開かれた製品のデータが含まれていますか?

4

1 に答える 1

0

現在のスコープから必要なデータを注入する解決オブジェクトを渡すことができます。

$stateProvider.state('product', {
url: '/product/:id',
onEnter: ["$modal", function ($modal) {
   $modal.open({
      templateUrl: '/App/product/product.html',
      controller: 'ProductController',
      controllerAs: 'vm',
      resolve: {
                            product: function () {
                                $scope.current_roduct= $scope.selected;
                                return $scope.current_roduct;
                            }
                        }
   });
}]             
});
于 2015-09-25T14:57:55.287 に答える