質問: "22"; } 検索 ``` 親画面が子画面の値を見る方法が分からなくて、困っています。 よろしくお願いします。
回答: あるコントローラーからons-modal中のコントローラーの値を見たいということで大丈夫でしょうか。あるコントローラーから別のコントローラーに値を渡したいのであれば、少なくとも方法は2つあります。 * 一つはAngularJSのサービスを使って値を渡す方法です。あるサービスを作ってそのサービスを2つの両方のコントローラーにインジェクションします。1つ目のコントローラーで値を入力して、モーダル内のコントローラーで値を受け取ることができます。詳細は下の例をみてください。 詳細コード: ``` //サービスを作ります。 myApp.factory('SharedData', function () { return { example: 'example' }; }); //コントローラーを作ってサービスをインジェクションします。親画面 myApp.controller('ParentScreenController', function( $scope, SharedData ){ $scope.Data = SharedData; }); //コントローラーを作ってサービスをインジェクションします。子画面 myApp.controller('ChildScreenController', function( $scope, SharedData ){ $scope.Data = SharedData; }); ``` * もう一つはイベントを発行して値を渡す方法です。 1つ目のコントローラーでイベントを発行することによって、他のコントローラーにそのイベントとともに値を渡すことができます。簡単ですが、例を用意しました(注意: $rootScopeを両方のコントローラーにインジェクションして下さい) 。 詳細: ``` // イベントおよび値を発行するコントローラー 子画面 myApp.controller('FirstController', function( $scope, SharedData, $rootScope ){ $rootScope.$broadcast('updatingData', sharedData); alert('updatingDataイベントを発行しました!'); }); // イベントおよび値を受け取るコントローラー 親画面 myApp.controller('SecondController', function( $scope, SharedData, $rootScope ){ $rootScope.$on('updatingData', function(event, sharedData) { alert('イベント受信完了!'); $scope.sharedData = sharedData; }); }); ``` お役に立てれば嬉しいです。