2017-09-06 11 views
1

AngularJSを使用したライブ更新ビューに関する質問があります。私はコメントを追加して、再読み込みページを表示しないでください。今私は$route.reload()を使用していますこの良いソリューションですか? 2つ目の解決策は、コメントの機能を以下のコメントを追加した後、機能が良好ですが、常にコメントの下にスクロールするコメントを追加した後です。更新ビューを表示するためのアドバイスはありますか?コメントは、あなたが角度が提供する$間隔を使用する必要がありますMongoDBのAngularJSを使用したライブ更新ビュー

userFactory.readMoreCourse = function(id) { 
    return $http.get('/api/product/' + id) 
} 

function getComment() { 
    User.readMoreCourse($routeParams.id).then(function(data){ 
     app.comment = data.data.product.comments 
    }); 
}  
getComment(); 
+0

あなたは何を意味するのか少し説明していただけますか?私は実際にそれを理解していません – quirimmo

+0

ユーザーがコメントを追加したら、すぐに私は$ route.reload()を使用してビューを更新したいと思いますが、これは適切な解決策ではないと確信しています。私が使用した2番目のソリューションは、上記の関数です。この作品は素敵ですが、私のウェブサイトのスクロールを下にして、なぜこのようなことは起こりません。私は$ route.reload()が最悪の解決策だと思います。なぜなら、ビューはこの後に点滅しているからです。だから私はユーザーのコメントを追加するためのビューを更新するための最良の解決策を見つけることを試みる –

+0

いいえ、これは適切な解決策ではありません。このような場合は、ポーリングまたはプッシュ通知の2つの選択肢があります。ポーリングとは、x秒ごとにサーバーに電話をかけ、新しいコメントがあるかどうかを尋ねます。新しいコメントがある場合は、取得して表示します。プッシュ通知とは、サーバーがクライアントにメッセージを送り返し、何かを通知することを意味します。この場合、Webソケットが必要です。私はそれがいいと思う。 – quirimmo

答えて

0

からロードしています。

これにより、関数がトリガーする特定の時間(5秒)を設定できます。

ビューをリフレッシュすることなく自動的に更新されますように、あなたはその後、このexampleは、これが実際にどのように機能するかを紹介します

app.controller('myController', function($scope, $interval) { 
    var id = $routeParams.id; 

    $scope.app = { 
    comment: [] 
    }; 

    $scope.getComment = function() { 
    User.readMoreCourse(id).then(function(response) { 
     // Single result. 
     $scope.app.comment.push(response.data); 

     // Multiple results. 
     angular.forEach(response.data, function(value, key) { 
     $scope.app.comment.push(value); 
     }); 
    }); 
    }; 

    $interval($scope.getComment, 5000); 
}); 

など、あなたのオブジェクトにデータをプッシュします。

関連する問題