AngularJS: директива изолировать область

0

Я пытаюсь создать чат с Pusher и AngularJs.

<div id="chats" ng-controller="ChatCtrl">
    <chat chat-id="1" chat-name="Max"></chat>
    <chat chat-id="2" chat-name="John"></chat>
    <chat chat-id="3" chat-name="Susanne"></chat>
</div>

У меня есть следующая директива:

.directive('chat', function() {
    return {
        restrict: 'E',
        templateUrl: '/tpl/chat-box.html'
    }
}]);

и следующий контроллер:

.controller('ChatCtrl', ['$scope', '$pusher', 
        function($scope, $pusher) {
            $scope.pusher = $pusher(client);

}])

Где я должен обрабатывать запросы ajax для приема старых сообщений и привязки канала Pusher для получения новых сообщений для чата? В контроллере или в директиве?

Теги:
angularjs-scope

1 ответ

1
Лучший ответ

Вероятно, в сервисе, который также будет инкапсулировать и другую бизнес-логику. Контроллер тогда будет только API-интерфейсом службы для отправки/получения данных и предоставления этих данных в представление, в то время как директива обычно должна касаться только манипуляции с DOM, и она тоже не должна содержать бизнес-логику.

Ваш вопрос немного чересчур общий, и название на самом деле не отражает ваш вопрос (ваша директива даже не имеет области выделения).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню