2015-08-30 193 views
0

我试图与Pusher和AngularJs建立聊天。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请求接收的邮件和推通道绑定接收新邮件对于聊天框?在控制器中还是在指令中?

回答

1

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

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