私はMEANスタックを使用して簡単なブログを作成しています。データベースから1つを削除するとポストがリフレッシュされません
ここで私はすべての私の記事を検索するために使用しているHTML部分です:
index.html
:<i class="fa fa-times" aria-hidden="true"></i>
はFontAwesomeライブラリ
から取られたアイコンはここに私のコントローラですされていますことを
<div ng-repeat="post in posts">
<h2>
{{post.title}}
<a ng-click="deletePost(post._id)"class="pull-right"><i class="fa fa-times" aria-hidden="true"></i></a>
</h2>
<em>{{post.posted}}</em>
<p>{{post.body}}</p>
</div>
注角型アプリの場合:
(function() {
angular
.module("BlogApp", [])
.controller("BlogController", BlogController);
function BlogController($scope, $http) {
$scope.createPost = createPost;
$scope.deletePost = deletePost;
function init() {
getAllPosts();
}
init();
function deletePost(postId) {
$http.delete('/api/blogpost/' + postId).then(getAllPosts);
}
function getAllPosts() {
$http.get("/api/blogpost").then(function(posts){
$scope.posts = posts.data
});
}
そしてここで、削除要求を処理する私のサーバーの一部です:
// deletePost
app.delete('/api/blogpost/:id', deletePost);
function deletePost(req, res) {
var postId = req.params.id;
PostModel.remove({_id: postId}).then(
function() {
res.sendstatus(200);
},
function() {
res.sendStatus(400);
}
);
}
Xのアイコンをクリックすると、アクションが私のコントローラを打つん、サーバーに到達し、自分のデータベースからではなく、何らかの理由で投稿を削除するために管理しますすべての自分の投稿で自動的にページを更新するわけではありません。私はそれをリフレッシュする必要があります。だから私は、サーバに当たった直後にコントローラのgetAllPosts
という関数を呼び出して、データを更新すると思ったのです。私は何が欠けていますか?
それは '$ scope.post'すべきではありません? – wrangler
タイトルとボディのモデルを 'ng-model =" post.title "'として追加したので、postsはpostオブジェクトの配列です。 正直なところ、何が書かれているのか分かりませんが、サーバーに 'deletePost'関数を書き直しました。私はそれがマングースの約束の問題だったと思う。私はまだそれが正直であることをかなり混乱させることがわかります。 – user7496931
あなたはあなたの質問に答えて、それを受け入れて閉じなければなりません – wrangler