AngularJS:指令隔离范围

时间:2015-08-30 11:26:44

标签: angularjs angularjs-scope

我正在尝试与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通道绑定以接收聊天框的新消息?在控制器或指令中?

1 个答案:

答案 0 :(得分:1)

可能在服务中,它也会封装其他业务逻辑。然后控制器只是服务的API发送/接收数据并使这些数据可用于视图,而指令通常只涉及DOM操作,并且它也不应包含业务逻辑。 / p>

你的问题有点过于笼统,标题并没有真正反映你的问题(你的指令甚至没有隔离范围)。