問題
私はdialog
自分のアプリケーションで UI Bootstrap のサービスを使用しています。このサービスはモーダル ダイアログを作成し、outer で次のメソッドを使用してそれを行います$scope
。
$scope.showRouteEditDialog = function (template, route) {
// argument `route` is not currently used
var dialog = $dialog.dialog({
backdrop: true,
keyboard: false,
backdropClick: true,
templateUrl: template,
controller: 'RouteController'
});
dialog.open().then(function(result) {
alert(result); // This line is called when dialog is closed
});
}
このメソッドは、後で次のマークアップを使用して部分ビューから呼び出されます
<a href="#" ng-click="showRouteEditDialog('Templates/Content/Timeline/Item/Editor.html', route)"><i class="halflings-icon edit"></i></a>
route
私のダイアログは(route
メインモデル内のサブモデルです)の編集を処理するため、そのルートをダイアログに渡して、外部モデルについて何も知らなくても独自のモデルのように扱うようにしたいと思います。
この問題に対する私の最初の推測は、ルート引数をdialog
変数に割り当て、dialog.route = route
後で次のコードを使用してコントローラー内で使用することでした。
Application.controller('RouteController', ['$scope', 'dialog', function ($scope, dialog) {
// `dialog` is our dialog and it is injected with injector
doSomethingWith(dialog.route)
}]);
このアプローチは依存関係を作成し、角度のあるやり方のようには見えませんが
その目的のためにサービスを使用する必要があると言っているこの投稿も見つけましたが、この解決策はそのような小さな問題にはやり過ぎのようです。
質問
上記のシナリオを使用して、外側のコントローラーから内側のコントローラーに値を渡す角度のある方法は何ですか。
ありがとうございました