http://angularjs.org/Cookbook:Resources
[angular-mojolicious.git] / templates / Cookbook / 7-Resources.html.ep
1 <script>
2 angular.service('myApplication', function($resource){
3  this.Activity = $resource(
4   'https://www.googleapis.com/buzz/v1/activities/:userId/:visibility/:activityId/:comments',
5   {alt:'json', callback:'JSON_CALLBACK'},
6   { get:     {method:'JSON', params:{visibility:'@self'}},
7    replies: {method:'JSON', params:{visibility:'@self', comments:'@comments'}}
8   });
9 }, {inject:['$resource']});
10
11 function BuzzController(){}
12 BuzzController.prototype = {
13  fetch: function(){
14   this.activities = this.Activity.get({userId:this.userId});
15  },
16  expandReplies: function(activity) {
17   activity.replies = 
18    this.Activity.replies({userId:this.userId, activityId:activity.id});
19  }
20 };
21 </script>
22 <div ng:controller="BuzzController">
23  <input name="userId" value="googlebuzz"/>
24  <button ng:click="fetch()">fetch</button>
25  <hr/>
26  <div ng:repeat="item in activities.data.items">
27   <h1 style="font-size: 15px;">
28    <img src="{{item.actor.thumbnailUrl}}" style="max-height:30px;max-width:30px;"/>
29    <a href="{{item.actor.profileUrl}}">{{item.actor.name}}</a>
30    <a href="#" ng:click="expandReplies(item)" style="float: right;">
31     Expand replies: {{item.links.replies[0].count}}
32    </a>
33   </h1>
34   {{item.object.content | html}}
35   <div ng:repeat="reply in item.replies.data.items" style="margin-left: 20px;">
36    <img src="{{reply.actor.thumbnailUrl}}" style="max-height:30px;max-width:30px;"/>
37    <a href="{{reply.actor.profileUrl}}">{{reply.actor.name}}</a>:
38    {{reply.content | html}}
39   </div>
40  </div>
41 </div>