スタックMEANの基本Webサイトを作成していますが、何も表示されないng-repeatの問題があります。私が別のプロジェクトで同様のことをすると、何の問題もなく表示されます。ここでデータがあってもng-repeatが表示されない
は、ページのHTMLです:
<!-- POST.HTML -->
<div class="row" ng-app ="myapp">
<div class = "col-xs-6 col-xs-offset-6 col-sm-6 col-sm-offset-6 col-md-6 col-md-offset-6" ng-controller="postController as post">
<div class = "row">
<strong> Username: </strong>
<input type = "text" ng-model ="post.newPost.Author" class = "form-control" placeholder="Enter your username">
</div>
<div class = "row">
<strong> Content </strong>
<input type = "text" ng-model = "post.newPost.Content" class= "form-control" placeholder="Write a short text about your humor !">
</div>
<button ng-click = "post.Post()" > Post your message ! </button>
<div>
<h4> Posts </h4>
<li ng-repeat = "message in post.messages">
<blockquote>
<strong> Title : {{message._id}} </strong>
<!-- {{message.content}} -->
<!-- <cite class="clearfix">—{{message.author}}</cite> -->
</blockquote>
</li>
</div>
</div>
、スクリプト関連した:私は、コントローラは、Iとして、このHTMLページにアクティブであることを確信している
(function(){
angular.module("myapp")
.controller("postController", ["$http", function($http){
$http.get("/api/message/getAll/").then(function(response){
this.messages = response.data;
console.log(this.messages);
});
this.Post = function(){
console.log("Post() function called");
var newPost = this.newPost;
console.log(newPost);
$http.post("/api/message/post/", newPost)
.success(function(response){
this.messages.push(newPost);
})
}
}])
})();
私のバックエンドに問題はありません(HTTP RESTクライアントでリクエストできます)。私はコンソールthis.messagesにログインして はさらに、私は右のデータがある見ることができます:私は多くの時間、そのページをリフレッシュしているため
データは3回記録されます。私のデータタブのすべてのオブジェクトに_id属性があることを確認しました。 すべてのチュートが同じことをしているように私は本当に問題を見ません。 this.messagesは、要求が満ちてすぐにデータをただちに失うようです。
何が起こったのか考えている人はいますか?
それはVMで本当にうまくいった!どうもありがとうございました ! しかし、私はまだそれがどのように動作するか取得しない: 私は「post.messagesでメッセージ」私のhtmlで呼び出し、スクリプトのみでのvar vm.messagesを持っていますが、それは何らかの形で動作しますか? はなぜHTMLで「post.vm.messageでメッセージを」呼び出す必要はありませんか? – Alburkerk
注意、VAR 'vm'は、あなたが' ControllerAsSyntax'、この場合の「ポスト」であなたの名前の変数を使用して、あなたのHTMLファイル内に、唯一のJSファイルで使用されています。それから 'post.message'。 – developer033
@Alburkerk、私はいくつかの説明で答えを編集しようとしました。十分にはっきりしていることを望みます。 – gyc