{"id":1166,"date":"2015-08-05T09:02:21","date_gmt":"2015-08-05T09:02:21","guid":{"rendered":"http:\/\/www.honobono-life.info\/wpeng\/?p=1166"},"modified":"2017-10-08T07:50:44","modified_gmt":"2017-10-08T07:50:44","slug":"following-and-followers-pages-with-angularjs","status":"publish","type":"post","link":"http:\/\/www.honobono-life.info\/wpeng\/following-and-followers-pages-with-angularjs\/","title":{"rendered":"Ruby on Rails Tutorial following and followers pages with AngularJS"},"content":{"rendered":"<p><strong>(1)Home page<\/strong><\/p>\r\n\r\n<p><strong>1)follower stats parts<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/templates\/static_pages\/home.html.erb<\/p>\r\n\r\n<div ng-non-bindable><pre class=\"prettyprint\">\r\n&lt;div class=&quot;stats&quot;&gt;\r\n  &lt;a href=&quot;#&quot; ng-click=&quot;following()&quot;&gt;\r\n    &lt;strong id=&quot;following&quot; class=&quot;stat&quot;&gt;\r\n      {{chkSignin().followed_users.length}}\r\n    &lt;\/strong&gt;\r\n    following\r\n  &lt;\/a&gt;\r\n  &lt;a href=&quot;#&quot;&gt;\r\n    &lt;strong id=&quot;followers&quot; class=&quot;stat&quot;&gt;\r\n      {{chkSignin().followers.length}}\r\n    &lt;\/strong&gt;\r\n    followers\r\n  &lt;\/a&gt;\r\n&lt;\/div&gt;<\/pre><\/div>\r\n\r\n<p><strong>2)following and followers list parts<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/templates\/static_pages\/home.html.erb<\/p>\r\n\r\n<div ng-non-bindable><pre class=\"prettyprint\">\r\n.....\r\n&lt;div class=&quot;col-sm-8&quot;&gt;\r\n  &lt;div ng-show=&quot;flg_follers&quot; class=&quot;row&quot;&gt;\r\n    &lt;h1 class=&quot;text-center&quot;&gt;{{follow_title}}&lt;\/h1&gt;\r\n    &lt;ul ng-repeat=&quot;f_user in f_users&quot; class=&quot;users&quot;&gt;\r\n      &lt;li&gt;&lt;img alt=&quot;{{f_user.name}}&quot; src=&quot;https:\/\/secure.gravatar.com\/avatar\/{{hash(f_user.email)}}?s=52&quot; \/&gt;\r\n        &lt;a href=&quot;\/users\/{{f_user.id}}&quot;&gt;{{f_user.name}}&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n  &lt;\/div&gt;\r\n  &lt;h3&gt;Micropost Feed&lt;\/h3&gt;\r\n.....<\/pre><\/div>\r\n\r\n<p><strong>3)AngularJS controller<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\nmyModule.controller(&quot;HomeCtrl&quot;, function($scope, flashService, micropostsResource, sessionResource, $filter) {\r\n.....\r\n  $scope.chkSignin = function() {\r\n    return flashService.getUser();\r\n  };\r\n.....\r\n  $scope.flg_follers = false;\r\n  $scope.following = function() {\r\n    $scope.flg_follers = true;\r\n    $scope.follow_title = &quot;Following&quot;;\r\n    $scope.f_users = $scope.chkSignin().followed_users;\r\n  };\r\n  $scope.followers = function() {\r\n    $scope.flg_follers = true;\r\n    $scope.follow_title = &quot;Followers&quot;;\r\n    $scope.f_users = $scope.chkSignin().followers;\r\n  };\r\n  $scope.hash = function(email) {\r\n    return md5(email.toLowerCase());\r\n  };<\/pre>\r\n\r\n<p><strong>(2)User Profile page<\/strong><\/p>\r\n\r\n<p><strong>1)follower stats parts<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/templates\/users\/show.html.erb<\/p>\r\n\r\n<div ng-non-bindable><pre class=\"prettyprint\">\r\n&lt;div class=&quot;col-xs-6 col-sm-4&quot;&gt;\r\n  &lt;h3&gt;\r\n    &lt;img alt=&quot;{{user_info.user.name}}&quot;\r\n         src=&quot;{{user_info.gravatar_url}}?s=60&quot;\r\n         class=&quot;gravatar&quot; \/&gt;\r\n    {{user_info.user.name}}\r\n  &lt;\/h3&gt;\r\n  &lt;span ng-show=&quot;flg_follers&quot;&gt;\r\n    &lt;a href=&quot;#&quot; ng-click=&quot;viewProfile()&quot;&gt;\r\n      view my profile\r\n    &lt;\/a&gt;\r\n  &lt;\/span&gt;&lt;br \/&gt;\r\n  &lt;div class=&quot;stats&quot;&gt;\r\n    &lt;a href=&quot;#&quot; ng-click=&quot;following()&quot;&gt;\r\n      &lt;strong id=&quot;following&quot; class=&quot;stat&quot;&gt;\r\n        {{user_info.followed_users.length}}\r\n      &lt;\/strong&gt;\r\n      following\r\n    &lt;\/a&gt;\r\n    &lt;a href=&quot;#&quot; ng-click=&quot;followers()&quot;&gt;\r\n      &lt;strong id=&quot;followers&quot; class=&quot;stat&quot;&gt;\r\n        {{user_info.followers.length}}\r\n      &lt;\/strong&gt;\r\n      followers\r\n    &lt;\/a&gt;\r\n  &lt;\/div&gt;\r\n&lt;\/div&gt;<\/pre><\/div>\r\n\r\n<p><strong>2)following and followers list parts<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/templates\/users\/show.html.erb<\/p>\r\n\r\n<div ng-non-bindable><pre class=\"prettyprint\">\r\n&lt;div class=&quot;col-xs-6 col-sm-8&quot;&gt;\r\n  &lt;div ng-show=&quot;flg_follers&quot; class=&quot;row&quot;&gt;\r\n    &lt;h3&gt;{{follow_title}}&lt;\/h3&gt;\r\n    &lt;ul ng-repeat=&quot;f_user in f_users&quot; class=&quot;users&quot;&gt;\r\n      &lt;li&gt;&lt;img alt=&quot;{{f_user.name}}&quot;\r\n               src=&quot;https:\/\/secure.gravatar.com\/avatar\/{{hash(f_user.email)}}?s=52&quot; \/&gt;\r\n        &lt;a href=&quot;\/users\/{{f_user.id}}&quot;&gt;{{f_user.name}}&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n  &lt;\/div&gt;\r\n  &lt;div ng-hide=&quot;flg_follers&quot; class=&quot;row&quot;&gt;\r\n    &lt;h3&gt;Microposts({{user_info.microposts.length}})&lt;\/h3&gt;\r\n.......<\/pre><\/div>\r\n\r\n<p><strong>3)AngularJS controller<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\nmyModule.controller(&quot;UsersShowCtrl&quot;, function($scope, $routeParams, userResource, flashService, $filter, micropostsResource, $q) {\r\n.....\r\n  userResource.show({ id: $routeParams.id }, function(response) {\r\n    $scope.user_info = response;\r\n.......\r\n  });\r\n  $scope.flg_follers = false;\r\n  $scope.following = function() {\r\n    $scope.flg_follers = true;\r\n    $scope.follow_title = &quot;Following&quot;;\r\n    $scope.f_users = $scope.user_info.followed_users;\r\n  };\r\n  $scope.followers = function() {\r\n    $scope.flg_follers = true;\r\n    $scope.follow_title = &quot;Followers&quot;;\r\n    $scope.f_users = $scope.user_info.followers;\r\n  };\r\n  $scope.viewProfile = function() {\r\n    $scope.flg_follers = false;\r\n  };\r\n  $scope.hash = function(email) {\r\n    return md5(email.toLowerCase());\r\n  };\r\n<\/pre>\r\n","protected":false},"excerpt":{"rendered":"<p>(1)Home page 1)follower stats parts $ vi app\/assets\/templates\/static_pages\/home.html.erb &lt;div class=&quot;stats&quot;&gt; &lt;a href=&quot;#&quot; ng-click=&quot;following()&quot;&gt; &lt;strong id=&quot;following&quot; class=&quot;stat&quot;&gt; {{chkSignin().followed_users.length}} &lt;\/strong&gt; following &lt;\/a&gt; &lt;a href=&quot;#&quot;&gt; &lt;strong id=&quot;followers&quot; class=&quot;stat&quot;&gt; {{chkSignin().followers.length}} &lt;\/strong&gt; followers &lt;\/a&gt; &lt;\/div&gt; 2)following and followers list parts $ vi app\/assets\/templates\/static_pages\/home.html.erb &#8230;.. &lt;div class=&quot;col-sm-8&quot;&gt; &lt;div ng-show=&quot;flg_follers&quot; class=&quot;row&quot;&gt; &lt;h1 class=&quot;text-center&quot;&gt;{{follow_title}}&lt;\/h1&gt; &lt;ul ng-repeat=&quot;f_user in f_users&quot; class=&quot;users&quot;&gt; &lt;li&gt;&lt;img alt=&quot;{{f_user.name}}&quot; src=&quot;https:\/\/secure.gravatar.com\/avatar\/{{hash(f_user.email)}}?s=52&quot; \/&gt; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[137],"tags":[35,185,186],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1166"}],"collection":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/comments?post=1166"}],"version-history":[{"count":1,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1166\/revisions"}],"predecessor-version":[{"id":1167,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1166\/revisions\/1167"}],"wp:attachment":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/media?parent=1166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/categories?post=1166"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/tags?post=1166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}