Чтобы два контроллера разговаривали друг с другом в Angular, рекомендуется создать общую службу, доступную для обоих контроллеров. Я попытался проиллюстрировать это в очень простой fiddle. В зависимости от того, какую кнопку вы нажимаете, приложение должно подгонять сообщение под кнопками.
Так почему же это не работает? Я пропустил что-то очевидное или более фундаментальное?
HTML
<div ng-controller="ControllerOne">
<button ng-click="setNumber(1)">One</button>
<button ng-click="setNumber(2)">Two</button>
</div>
<div ng-controller="ControllerTwo">{{number}} was chosen!</div>
JavaScript
var app = angular.module('app', []);
app.factory("Service", function () {
var number = 1;
function getNumber() {
return number;
}
function setNumber(newNumber) {
number = newNumber;
}
return {
getNumber: getNumber,
setNumber: setNumber,
}
});
function ControllerOne($scope, Service) {
$scope.setNumber = Service.setNumber;
}
function ControllerTwo($scope, Service) {
$scope.number = Service.getNumber();
}