/ / AngularJS - wyzwala to samo zdarzenie dla dołączonej stopki i nagłówka na wszystkich stronach - angularjs, zdarzenia, zakres, uwzględnij

AngularJS - wyzwala to samo wydarzenie dla dołączonej stopki i nagłówka na wszystkich stronach - angularjs, events, scope, include

To pytanie ma szansę być duplikatem, ale po kilku poszukiwaniach nie byłem w stanie znaleźć dobrego wyjaśnienia mojego problemu - więc przepraszam, jeśli tak jest.

Cóż, mam szablon, który jest tak napisany:

<div ng-include=""includes/header.html""></div>

<section>... Template for homepage, page1, page2... </section>

<div ng-include=""includes/footer.html""></div>

Mój header.html wygląda następująco:

<section class="header">
<div class="wrapper">
<a href="#/"><img id="logotype" src="/images/images/logotype.png"></a>
<ul id="menu">
<li>
<a href="#/">Home</a>
</li>
<li class="border-none">
<a class="a" ng-click="chatClicked = !chatClicked">Click to chat</a>
</li>
<li id="logout" class="glyphicon glyphicon-off border-none">
<a href="#/logout">Logout</a>
</li>
</ul>
</div>
</section>

I mój footer.html w ten sposób:

<section class="footer">
<div class="wrapper">
<ul id="menu-left">
<li>
<a href="#/">Home</a>
</li>
<li>
<a class="a" ng-click="chatClicked = !chatClicked">Click to chat</a>
</li>
</div>
</section>

Zastanawiam się, czy istnieje sposób, aby otworzyć / ukryć to nowe uwzględnienie na wszystkich stronach (

<div ng-if="chatClicked" ng-controller="ChatController" ng-include=""includes/popup-chat-to-click.html""></div>

) za każdym razem wydarzenie chatCliked jest uruchamiany - a jeśli to możliwe - gdzie najlepiej jest umieścić ostatni div?

Odpowiedzi:

1 dla odpowiedzi № 1

Ok problem rozwiązany przy użyciu tego linku, przepraszam:

AngularJS - utrata zakresu przy użyciu ng-include

To była kwestia zakresu $.

Musiałem dodać to w moim kontrolerze:

app.controller("homeController",
["$scope"",
function ($scope) {

$scope.chat = { clicked: false };
}]);

w moim głównym widoku:

<div ng-include=""includes/header.html""></div>

<div ng-if="chat.clicked" ng-controller="ChatController" ng-include=""modules/chat/popup-contact.html""></div>

w moim header.html:

<a class="a" ng-click="chat.clicked = !chat.clicked">Contact us</a>