私は角度アプリケーションで作業しています。1つのコントローラからの値は、他のコントローラでも利用可能でなければなりません。
以下のサンプルコードを見つけてください:
app.controller('ctrlOne',function($rootScope, $scope, $uibModal, MyService) {
//have some functionality here
$scope.loadCtrlOneData = function() {
alert("loadCtrlOneData");
MyService.getSIDResult().then(
function (response) {
//business logic
})
}}
app.controller('ctrlTwo', function ($rootScope, $scope, $uibModal, MyService) {
//some functionality here
function loadData() { //jQuery load to load the calendar in the field
MyService.getValueForDatePicker().then(
function (response) {
var cb = function(start, end, label) {
//This function is called when user submit the date in datepicker
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
}
})
}
loadData();
})
を上記のコードは、私のコードのラフ絵です。ページが読み込まれると、ctrlOneとctrlTwoが読み込まれます。以下のコードに示すようCtrlTwoは、入力フィールドに日付ピッカーを表示するために使用されている:ユーザーが日付ピッカーから日付を選ぶとに提出クリック数
<input id="reportrange" ng-controller="ctrlTwo">
、再びctrlOneが呼び出されるべきであり、日付値は、で利用可能であるべきです私はいくつかのロジックを実装し、再びブラウザ上に結果を表示する場所があります。日付ピッカーhereのデモを見つけてください。ユーザーが日付を選択してsubmitをクリックし、日付値をctrlOneに使用できるようにするにはctrlOneを呼び出す方法を提案してください。
観測と組み合わせて、サービスプロバイダを使用してください。角度2では、プロバイダ依存関係をコントローラに注入し、プロバイダのプロパティにサブスクライブすることができます。一方のコントローラは 'next'を介して値をプッシュし、他方のコントローラはプロパティにサブスクライブします。 – kyle
私はangularjs(angular1)@kyleを使用しています – participantjava
https://docs.angularjs.org/guide/providers – kyle