コントローラの$スコープスープを避けるためにcontrollerAs構文を使用しています。また、ui.bootstrapを使用してモーダルビューを表示しています。controllerAs構文を使用しているときは、現在のスコープをmodalInstanceに渡します。
現在のコントローラと同じスコープを共有するmodalInstaceを開く必要があります。
var modalInstance = $uibModal.open({
templateUrl: 'addEditModal.html',
scope: $scope
});
しかし
私はスコープを注入し、controllerAs構文を使用していないとして、動作しません。スコープを注入すると、あなたはおそらくのような何かを行うことができます。
私が見つけたことから、解決策を使用してデータを渡す必要がありますが、関数を介して明示的に渡す必要があります。スコープ全体を渡す方法はありますか?
私はそのモーダルでやりたいことがたくさんあり、データの大部分を過度に過ぎているようです。
は、任意のより良いアイデア
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
resolve: {
user: function() {
return vm.user;
},
something: function() {
return vm.something;
},
blah: function() {
return blah;
}
}
});
...それは厄介なようだとして、これを行うにはしたくないですか?
この解決策では、$ scopeをコントローラに注入する必要があります。これが私たちが避けようとしていることです。 – Bendim
@Bendim答えで述べたように、スコープを注入するのではなく、モーダルコントローラの親スコープを指定します。これは、あるサービスでは、コントローラの '$ scope'または' scope = $ rootScope。$ new() 'スコープにすることができます。 '$ uibModal'はそのように動作するように設計されています。私たちは誰ですか?同じような問題がある場合は、あなたの特定のケースを反映した質問を投稿してください。 – estus
答えの半分のように思えます。 $ scope.controllerasname.variableとして親スコープ変数にアクセスすることができます – nuander