从这个stackoverflow问题,我的理解是我应该使用服务在控制器之间传递数据.
但是,正如我的示例JSFiddle所示,当我跨越控制器修改服务时,我无法收听对服务的更改.
angular.module('myApp', []) .controller('Ctrl1', function ($scope, App) { $scope.status = App.data.status; $scope.$watch('App.data.status', function() { $scope.status = App.data.status; }); }) .controller('Ctrl2', function ($scope, App) { $scope.status = App.data.status; $scope.$watch('status', function() { App.data.status = $scope.status; }); }) .service('App', function () { this.data = {}; this.data.status = 'Good'; });
在我的例子,我想订阅App.data.status
的Ctrl1
,我想从发布的数据Ctrl1
到App
.但是,如果您尝试更改div
关联的输入框Ctrl2
,则文本不会跨越控制器边界更改Ctrl1
.