angularjs – 在控制器之间传递数据

我正在使用模态构建一个角度应用程序,我想在我的控制器之间传递一些数据来填充我的模态视图。

我的主控制器是JobListCtrl,当我点击应该调用模态的链接时会触发callReportModalData。 我使用服务reportJobModalData来存储数据并在控制器之间传递它。

var myApp = angular.module('myApp', []); myApp.controller('JobListCtrl', ['$scope', '$element', '$http', '$log', 'reportJobModalData', function ($scope, $element, $http, $log, reportJobModalData) { $scope.reportJobModalData = reportJobModalData; $scope.callReportModal = function(test){ reportJobModalData.test = test; } }]); myApp.service('reportJobModalData', function(){ this.test = ''; }); 

我的模态控制器和指令定义如下:

 myApp.controller('reportJobCtrl', function ($rootScope, $scope, $http, $log, reportJobModalData) { $scope.$log = $log; $scope.reportJobModalData = reportJobModalData; $scope.test = reportJobModalData.test; $log.info('test: ' + reportJobModalData.test); }); myApp.directive('sjReportJobModal', ['$rootScope', '$log', '$http', 'reportJobModalData', function ($rootScope, $log, $http, reportJobModalData) { return { restrict: 'E', templateUrl: 'report-job-modal-tpl', replace: true, transclude: true, link: function (scope) { } }; }]); 

我使用的模板就是这个:

  

这里的数据在模态上正确打印。 但是我无法访问控制器中的数据,即$ scope.test为空,因为我只在控制台上登录’test:’。

我究竟做错了什么?

非常感谢你的帮助

尝试在joblistctrl中设置值时,在服务变量上应用监视,执行reportjobctrl。

所以将此代码放在reportjobctrl中,让我知道结果

 $scope.$watch(function(){ return reportJobModalData.test}, function(new,old){ $scope.test=new; });