<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
</head>
<body ng-app="App">
<h1>Page Title</h1>
<div ng-cloak ng-controller="announcementController">
<div ng-repeat="post in posts">
<h3>{{ post.title }}</h3>
<p>{{ post.body }}</p>
</div>
</div>
</body>
</html>
angular.module('App', []);
class getService {
static $inject = ["$http", "$window"]
baseUrl: string = 'https://jsonplaceholder.typicode.com';
urlObject = {
Announcement: "/posts",
};
responseObj = {
Announcement :[],
};
constructor(
public $http: any,
private $window: any
) { }
// method utilizing generic promise object for announcements controller
public getAnnouncements()
{
return this.getRequest(this.baseUrl + this.urlObject.Announcement, "Announcement");
}
public passData()
{
return this.responseObj.Announcement;
}
//Generic angular $http promise object
private getRequest(url: string, responseType:string)
{
return this.$http.get(url)
.then((response) =>
{
this.responseObj[responseType] = response.data;
},
function (data) {
this.$window.alert("Error: " + data);
});
}
}
angular.module('App').service("getService", getService);
class announcementController {
static $inject = ["$rootScope", "$scope", "$window", "getService" ];
Announcement: any = [
{ Message: "test" }
];
constructor(
public $rootScope: any,
public $scope: any,
private $window: any,
private getService: any)
{
this.init();
}
public getAnnouncements() {
return this.getService.getAnnouncements();
}
public setAnnouncements() {
this.Announcement = this.getService.passData();
this.$scope.posts = this.Announcement;
}
init() {
console.log('controller init');
this.getAnnouncements().then(() => {
this.setAnnouncements();
});
}
}
angular.module('App').controller("announcementController", announcementController);
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |