ng-repeat を使用して、オブジェクトの配列をループする方法を見つけようとしています。
次のようにファクトリをセットアップしました。3 つのセットのデータが含まれています。
mainApp.factory("dashboardContent", function() {
return {
contentBoxes: [
{
boxType: "image",
boxIcon: "icons-image",
boxTitle: "on Chapter 1, paragraph 3",
header: {
title: "Lorem ipsum title sit amet",
subtitle: "by Lorem Ipsum"
},
authorImage: "/asssets/ssfsgterwes",
embedContent: ""
},
{
boxType: "audio",
boxIcon: "icons-audio",
boxTitle: "on Chapter 12, paragraph 2",
header: {
title: "lorem ipsum audio sit maet",
subtitle: "by multiple objects"
},
authorImage: "/asssets/ssfsgterwes",
embedContent: ""
},
{
boxType: "quote",
boxIcon: "icons-lightbulb",
boxTitle: "on Chapter 01, paragraph 5",
header: {
title: "lorem ipsum quote sit maet",
subtitle: "by multiple objects parsing"
},
authorImage: "/asssets/ssfsgterwes",
embedContent: ""
}
]
}
})
そして、ファクトリを注入したディレクティブ:
.directive('contentBox', function(dashboardContent) {
return {
restrict: 'E',
scope: {},
replace: true,
templateUrl: '/modules/contentbox.html',
link: function (scope, element) {
scope.contentData = dashboardContent.contentBoxes;
if (!$.isEmptyObject(scope.contentData.header)) {
element.children('.content').prepend(
'<div class="content-header">' +
'<span class="content-title">' +
scope.contentData.header.title +
'</span>' +
' <br/>' +
'</div>'
);
if (!$.isEmptyObject(scope.contentData.header.subtitle)) {
element.find('.content-header').append(
'<span class="content-author">' +
scope.contentData.header.subtitle +
'</span>'
);
}
}
}
}
})
私の見解では、次のようにループしようとしています。
<content-box ng-repeat="content in contentData"></content-box>
この場合、どのような表現を使用する必要がありますか? この式がどのように機能するかng-repeatドキュメントから理解できません。「contentData のコンテンツ」で、contentData がオブジェクトのセットを参照していることがわかりましたが、最初の単語は何ですか (コンテンツ、私はここに設定します)、それは何を指していますか?
また、このスコープを正しく設定しましたか? 上記のコードのように:
scope.contentData = dashboardContent.contentBoxes;
これから取得している出力は 3 つの空のコンテンツ ボックスであるため、ループしていると推測していますが、データは出力されていません。つまり、{{contentData.boxTitle}} は空を返すだけです。
この状況で ng-repeat を正しく使用していますか?