I'm a newbie to Angular. I need to render a dynamic content from JSON file using AngularJS 1.6. Here is what I have.
News.json
{
"Articles": [
{
"Title": "News 1",
"Abstract": "News 1 abstract ...",
"Body": "News 1 starts here.... ",
"Comments": [
{
"comment 1" : "Comment 1 goes here",
"comment 2" : "Comment 2 goes here",
"comment 3" : "Comment 3 goes here"
}]
},
{
"Title": "News 2",
"Abstract": "News 2 abstract ... ",
"Body": "News 2 starts here...",
"Comments": [
{
"comment 1" : "Comment 1 goes here",
"comment 2" : "Comment 2 goes here"
}]
}
]
}
Script.js
app.config(function ($routeProvider) {
$routeProvider
.when("/News", {
templateUrl: "NewsViewer.html",
controller: "showNews"
});
});
app.controller("showNews", ["$scope", "$http", function ($scope, $http) {
$http({
method: 'GET',
url: 'News/News.json'
}).then(function success(data) {
$scope.News = data.data;
});
}]);
News.html
<div class="container-fluid">
<div class="row">
<div class="col-md-offset-1 col-md-6">
<div ng-controller="NewsRendering">
<div ng-repeat="NewsData in News.Articles">
<h3>{{NewsData.Title}}</h3>
<p>{{NewsData.Abstract}}</p>
<a data-ng-href="/AngularTask/NewsViewer.html">more</a>
</div>
</div>
</div>
<div class="col-md-4 questionnaire">
<h3>Questionnaire of the day</h3>
</div>
</div>
</div>
NewsViewer.html
<div class="container-fluid">
<div class="row">
<div class="col-md-offset-1 col-md-6">
<div ng-controller="showNews">
<div>
<h3>{{News.Articles[0].Title}}</h3>
<p>{{News.Articles[0].Abstract}}</p>
<p>{{News.Articles[0].Body}}</p>
</div>
<div class="comments">
<h4>Comments</h4>
<hr>
<p>{{News.Articles[0].Comments[0]}}</p>
</div>
</div>
</div>
</div>
</div>
This code is working fine, but this code is not dynamic. My problem how to make it dynamic and can show whatever in json file. What should I do in JS code to pass the index of the array of the JSON File.
As you can see <h3>{{News.Articles[0].Title}}</h3>
is showing only the first Title of the JSON file. I need to write it to be <h3>{{News.Articles[index of whatever].Title}}</h3>
Note: News.json has around 100,000 records. I make it two, just to show the code and describe the problem.
I think what you need is using 'ng-repeat' to show the Array Articles and '$http.get()' to load the json.file "dynamically" as you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With