AngularJSの使用を開始したばかりですが、プロジェクトとしてブックマークを管理するためのシンプルなアプリケーションを構築することにしました。私はブックマークのリストを維持し、アイテムを追加/削除できるようにしたい。私はDjango RESTフレームワークとAngularを使ってDjangoを使っています。AngularJS ng-repeatとコントローラ間の通信
これまではデータベースからブックマークを取得するサービスを作成しましたが、コントローラからコンソールに印刷することはできますが、ng-repeatは表示されていないようです。
ここにサービスのための私のコードです:
.factory('BookmarkService', ["$http", function ($http) {
var api_url = "/api/bookmarks/";
return {
list: function() {
return $http.get(api_url).then(function (response) {
return response.data
})
}
}
}]);
とコントローラ用:
.controller("ListController",
["$scope", "BookmarkService", function ($scope, BookmarkService) {
$scope.bookmarks = BookmarkService.list();
console.log($scope.bookmarks);
}]);
そして、ここではHTMLです:
<div ng-controller="ListController as listCtrl">
<md-card>
<md-card-content>
<h2>Bookmarks</h2>
<md-list>
<md-list-item ng-repeat="bookmark in listCtrl.bookmarks">
<md-item-content>
<div class="md-tile-content">
<p>{[{ bookmark.name }]} - {[{ bookmark.url }]}</p> // used interpolateProvider to allow "{[{" instead of "{{"
</div>
<md-divider ng-if="!$last"></md-divider>
</md-item-content>
</md-list-item>
</md-list>
</md-card-content>
</md-card>
</div>
Iからコンソールに印刷するときコントローラ私は約束オブジェクトを見ることができますが、ng-repeatは繰り返されません: image of promise object
誰かが私の間違いを見つけて、なぜそれが起こっているのか理解するのを手伝ってくれたら本当に感謝しています。私はまだ、これらすべての部品がどのように適合しているかに全く満足していません。
ありがとうございました!
おかげのようになるはずです。この
を行います!この答えはその問題を解決しました。 – eilidh
私は実際にそれを以前に試みました。しかし、別の問題がありました。 "controller as"構文、つまり 'listCtrl.bookmarks'を使用するとブックマークが読み込まれません。彼らはそれなしでのみ。それがなぜ起こっているのかあなたは何か考えていますか? – eilidh
ああ、私はこれまで気付かなかった。コントローラをシンタックスとして使用する場合は、 '$ scope'ではなくコントローラインスタンスにプロパティをアタッチする必要があります。この場合、 '.controller(" ListController "、 [" BookmarkService "、function(BookmarkService){ this.bookmarks = BookmarkService.list(); console.log(this.bookmarks); }}のようになります。 ); '' $ scope'の代わりに 'this'を確認してください –