Da się, pytanie w jakim celu?
Jedno z podejść polega na zdefiniowaniu obiektu na kontrolerze będącym parentem, czyli MainCtrl, który zawiera message, a nie bindowanie bezpośrednio do prymitywa. W Angularze dyrektywa ng-controller dziedziczy po parencie, a nie współdzieli scope, w związku z czym przypisanie do samego prymitywu w SecondCtrl spowodowałoby stworzenie nowego elementu na scope-ie, a nie update istniejącego w parencie.
app.controller('MainCtrl', function($scope) {
$scope.message = {content: "text"};
});
app.controller('SecondCtrl', function($scope) {
$scope.changeMessage = function() {
$scope.message.content = "text2";
});
});
Drugie z podejść to broadcastowanie eventu w SecondCtrl z poziomu $rootScope i obsłużenie go (za pomocą $on) w FirstCtrl.
Trzecie podejście to stworzenie serwisu, który przechowuje informacje o message:
app.value('Message', {content: 'text'})
app.controller('FirstCtrl', function($scope, Message) {
$scope.message = Message;
});
app.controller('SecondCtrl', function($scope, Message) {
$scope.changeMessage = function() {
Message.content = "text2";
});
});
<div ng-controller="FirstCtrl">
{{message.content}}
</div>