我正在處理角度應用,我有多個角度控制器。來自一個控制器的值應該可用於其他控制器
請看以下示例代碼:
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應該叫和日期值應在可用ctrlOne,在那裏我有一些邏輯來實現,並再次顯示在瀏覽器上的結果。請找到datepicker的演示here。請建議如何調用ctrlOne當用戶選擇日期並點擊提交和日期值應該可用於ctrlOne 。
使用服務提供商聯合觀測。在角2中,您將提供者依賴注入到控制器中,並可以訂閱提供者上的屬性。然後一個控制器可以通過'next'推送一個值,而另一個控制器可以訂閱屬性。 – kyle
我使用的是angularjs(angular1)@kyle – participantjava
https://docs.angularjs.org/guide/providers – kyle