1
내 Angular 앱에서 PrivatePub을 사용하려고합니다. 나는 채팅을했고 메시지는 AngularJS에서 관리하고, API는 레일즈에서 실행 중이며, 내 컨트롤러에서는 도우미를 사용하여 채널에 게시합니다. 내 문제는 구독과 함께 클라이언트 측에 있습니다. 여기에 내가 수행하려고 할 것입니다 :Angular JS에서 PrivatePub 사용
chat.controller("MessageController", ['$scope','Message','Project', function($scope,Message,Project) {
//Fetch messages
Message.query(function(data) {
$scope.messages = data;
});
PrivatePub.subscribe(Project.channel, function(data, channel) {
$scope.messages.push(data.message);
});
}]);
내 PrivatePub 구독 주위에 내 범위를 업데이트 할 수있는 방법을 볼 수 없습니다 $ 사용 적용 $하려고 노력했다. 내 PrivatePub 함수는 Angular 밖에 있어야하지만받는 데이터는 $ 범위에 추가해야합니다. 다른 해결책을 시도 할 수 없습니다.
'작동하지 않는다 '는 설명이별로 없습니다. 어떻게'$ apply'를 사용하려고 시도 했습니까? 오류가 발생 했습니까? – charlietfl
처음에는'Error : $ digest already in progress'를 사용했는데, 이것을 사용할 때 분명히 권장되지 않는 if (! $ scope. $$ phase) {// $ apply}와 같은 답변을 발견했습니다. 내 코드가 전혀 실행되지 않습니다. $ watch를 사용하면 코드가 실행되지만 범위가 업데이트되지 않습니다. –
'$ timeout'을 사용해보세요. 다이제스트가 완료 될 때까지 기다릴 것입니다. – charlietfl