// Вопрос, как создать глобальную модель и подписаться на её поведение?
// Допустим, в java я использую "модель поведения" - observer.
// В ангуляре есть сервисы и фабрики но или я *** или лыжи не едут.
// Ниже привёл код который пытаюсь реализовать. Может кто сталкивался
// и сможет подсказать как реализовать слушателей на уровня приложения
// что бы изменение модели можно было узнать из любого контроллера или
// юзать свои директивы?
// Заранее спасибо!
var
// Пример того, что я пытаюсь добиться.
application = angular.module("Application", []);
// ...
application.directive("myStateShow", function(){
global_state_change(function(){
this.element.display = this.element.attr['my-state-show'] === global_state ? "block" : "none";
});
});
// ...
application.directive("myStateActive", function(){
global_state_change(function(){
this.element.class = this.element.attr['my-state-active'] === global_state ? "active" : "";
});
});
// ...
application.controller("Controller", function($scope) {
$scope.setState = function(new_state) {
global_state = new_state;
};
});
<div ng-app="Application">
<div class="container">
<div>
<div my-state-active="1">State 1</div>
<div my-state-active="2">State 2</div>
<div my-state-active="3">State 3</div>
</div>
<div>
<div my-state-show="1">
<h1 class="page-header">First frame</h1>
</div>
<div my-state-show="2">
<h1 class="page-header">Next frame</h1>
</div>
<div my-state-show="3">
<h1 class="page-header">Last frame</h1>
</div>
</div>
<div ng-controller="Controller">
<button ng-click="setState(1)">set state 1</button>
<button ng-click="setState(2)">set state 2</button>
<button ng-click="setState(3)">set state 3</button>
</div>
</div>
</div>