I am attempting to access nested json data in a template in angularjs. I've attached what I have. The repeat section is working, but the {{title}} is not.
Sample JSON
[{
"title": "Sample Campaign Title",
"dateStart" : "Aug 1, 2014",
"dateEnd" : "Aug 31, 2014",
"results" : [
{
"tableTitle": "Performance",
"thead": [
{ "tr" : "Campaign" },
{ "tr" : "Impressions" },
{ "tr" : "Clicks" },
{ "tr" : "CTR" },
{ "tr" : "Cost" },
{ "tr" : "Actions" }
],
"values" : [
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "$753.75",
"Actions" : "n/a"
},
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
},
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
}
]
},
{
"tableTitle": "Table Number 2",
"thead": [
{ "tr" : "Campaign" },
{ "tr" : "Impressions" },
{ "tr" : "Clicks" },
{ "tr" : "CTR" },
{ "tr" : "Cost" },
{ "tr" : "Actions" }
],
"values" : [
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
},
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
},
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "134",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
}
]
},
{
"tableTitle": "Table Number 3",
"thead": [
{ "tr" : "Campaign" },
{ "tr" : "Impressions" },
{ "tr" : "Clicks" },
{ "tr" : "CTR" },
{ "tr" : "Cost" },
{ "tr" : "Actions" }
],
"values" : [
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
},
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "135",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
},
{
"Campaign" : "Search - Spokane Google AdWords Keywords",
"Impressions" : "22,610",
"Clicks" : "134",
"CTR" : "0.60%",
"Cost" : "753.75",
"Actions" : "n/a"
}
]
}
]
}]
Factory
angular.module('reportApp')
.factory('Reports', ['$http', function ($http) {
return {
getResults: function(callback) {
$http.get('sampleData/campaign.json').success(callback);
}
}
}]);
controller
.controller('ResultsCtrl', ['$scope', 'Reports', function($scope, Reports){
Reports.getResults(function(data) {
$scope.reports = data;
});
}])
And template, repeats are working, it is the {{title}} that is not
<header class="main-header">
<div class="row">
<div class="small-12 columns">
<h1>{{title}}</h1>
</div>
</div>
</header>
<div ng-repeat="report in reports">
<div class="row vert1" ng-repeat="table in report.results">
<div class="small-12 columns">
<h2>{{ table.tableTitle }}</h2>
<table>
<thead>
<tr>
<th ng-repeat="thead in table.thead">{{ thead.tr }}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="tr in table.values">
<td>{{tr.Campaign}}</td>
<td>{{tr.Impressions}}</td>
<td>{{tr.Clicks}}</td>
<td>{{tr.CTR}}</td>
<td>${{tr.Cost}}</td>
<td>{{tr.Actions}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>