2015-08-30 272 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操作,而且它也不應該包含業務邏輯。

雖然你的問題有點過於籠統,但標題並沒有真正反映你的問題(你的指令甚至沒有隔離範圍)。