From 45b7ea586a60d78c3f93e46828b50f0711bb8eca Mon Sep 17 00:00:00 2001 From: Marlon Silva Carvalho Date: Wed, 3 Jun 2015 14:49:15 -0300 Subject: [PATCH] Fixed issue #33. Now it's possible to use values coming from ajax calls. --- angular-social.js | 2 +- angular-social.map | 2 +- angular-social.src.js | 305 +++++++++++++++++++++----------- examples/demo1.html | 6 +- src/scripts/02-facebook.js | 24 ++- src/scripts/03-twitter.js | 26 ++- src/scripts/04-google-plus.js | 24 ++- src/scripts/05-vk.js | 30 ++-- src/scripts/06-odnoklassniki.js | 21 ++- src/scripts/07-mailru.js | 24 ++- src/scripts/08-pinterest.js | 27 ++- src/scripts/09-github-forks.js | 24 ++- src/scripts/09-github.js | 24 ++- src/scripts/10-stumbleupon.js | 29 +-- src/scripts/11-moikrug.js | 26 ++- src/scripts/12-linkedin.js | 26 ++- 16 files changed, 416 insertions(+), 204 deletions(-) diff --git a/angular-social.js b/angular-social.js index 6011097..148126c 100644 --- a/angular-social.js +++ b/angular-social.js @@ -1,2 +1,2 @@ -function template(a,b,c){"use strict";return a.replace(/\{([^\}]+)\}/g,function(a,d){return d in b?c?c(b[d]):b[d]:a})}var app=angular.module("ngSocial",[]);app.directive("ngSocialButtons",["$compile","$q","$parse","$http","$location",function(a,b,c,d,e){"use strict";return{restrict:"A",scope:{url:"=",title:"=",description:"=",image:"=",showcounts:"="},replace:!0,transclude:!0,template:'
',controller:["$scope","$q","$http",function(a,b,c){var d=function(){return a.url||e.absUrl()},f=this;return this.init=function(a,b,c){c.counter&&f.getCount(a.options).then(function(b){a.count=b})},this.link=function(b){b=b||{};var c=b.urlOptions||{};return c.url=d(),c.title||(c.title=a.title),c.image||(c.image=a.image),c.description||(c.description=a.description||""),f.makeUrl(b.clickUrl||b.popup.url,c)},this.clickShare=function(b,c){if(!b.shiftKey&&!b.ctrlKey){b.preventDefault(),c.track&&"undefined"!=typeof _gaq&&angular.isArray(_gaq)&&_gaq.push(["_trackSocial",c.track.name,c.track.action,a.url]);var d=!0;if(angular.isFunction(c.click)&&(d=c.click.call(this,c)),d){var e=f.link(c);f.openPopup(e,c.popup)}}},this.openPopup=function(a,b){var c=Math.round(screen.width/2-b.width/2),d=0;screen.height>b.height&&(d=Math.round(screen.height/3-b.height/2));var e=window.open(a,"sl_"+this.service,"left="+c+",top="+d+",width="+b.width+",height="+b.height+",personalbar=0,toolbar=0,scrollbars=1,resizable=1");e?e.focus():location.href=a},this.getCount=function(e){var g=b.defer(),h=e.urlOptions||{};h.url=d(),h.title||(h.title=a.title);var i=f.makeUrl(e.counter.url,h),j=angular.isUndefined(a.showcounts)?!0:a.showcounts;return j&&(e.counter.get?e.counter.get(i,g,c):c.jsonp(i).success(function(a){g.resolve(e.counter.getNumber?e.counter.getNumber(a):a)})),g.promise},this.makeUrl=function(a,b){return template(a,b,encodeURIComponent)},this}]}}]),app.directive("ngSocialFacebook",["$parse",function(a){"use strict";var b={counter:{url:"//graph.facebook.com/fql?q=SELECT+total_count+FROM+link_stat+WHERE+url%3D%22{url}%22&callback=JSON_CALLBACK",getNumber:function(a){return 0===a.data.length?0:a.data[0].total_count}},popup:{url:"http://www.facebook.com/sharer/sharer.php?u={url}",width:600,height:500},track:{name:"facebook",action:"send"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(c,d,e,f){d.addClass("ng-social-facebook"),f&&(b.urlOptions={url:a(e.url)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),app.directive("ngSocialTwitter",["$parse",function(a){"use strict";var b={counter:{url:"//urls.api.twitter.com/1/urls/count.json?url={url}&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://twitter.com/intent/tweet?url={url}&text={title}",width:600,height:450},click:function(a){return/[\.:\-–—]\s*$/.test(a.pageTitle)||(a.pageTitle+=":"),!0},track:{name:"twitter",action:"tweet"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-twitter"),f&&(b.urlOptions={url:a(e.url)(c),title:a(e.title)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),app.directive("ngSocialGooglePlus",["$parse",function(a){"use strict";var b={counter:{url:"//share.yandex.ru/gpp.xml?url={url}",getNumber:function(a){return a.count},get:function(a,c,d){return b._?void c.reject():(window.services||(window.services={}),window.services.gplus={cb:function(a){b._.resolve(a)}},b._=c,void d.jsonp(a))}},popup:{url:"https://plus.google.com/share?url={url}",width:700,height:500},track:{name:"Google+",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-google-plus"),f&&(b.urlOptions={url:a(e.url)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),app.directive("ngSocialVk",["$parse",function(a){"use strict";var b={counter:{url:"//vkontakte.ru/share.php?act=count&url={url}&index={index}",get:function(a,c,d){b._||(b._=[],window.VK||(window.VK={}),window.VK.Share={count:function(a,c){b._[a].resolve(c)}});var e=b._.length;b._.push(c),d.jsonp(a.replace("{index}",e))}},popup:{url:"http://vk.com/share.php?url={url}&title={title}&description={description}&image={image}",width:550,height:330},track:{name:"VKontakte",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-vk"),f&&(b.urlOptions={url:a(e.url)(c),title:a(e.title)(c),description:a(e.description)(c),image:a(e.image)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),angular.module("ngSocial").directive("ngSocialOdnoklassniki",["$parse",function(a){var b={counter:{url:"http://connect.ok.ru/dk?st.cmd=extLike&ref={url}&uid={index}",get:function(a,c,d){b._||(b._=[],window.ODKL||(window.ODKL={}),window.ODKL.updateCount=function(a,c){b._[a].resolve(c)});var e=b._.length;b._.push(c),d.jsonp(a.replace("{index}",e))}},popup:{url:"http://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl={url}",width:550,height:360},track:{name:"Odnoklassniki",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-odnoklassniki"),f&&(b.urlOptions={url:a(e.url)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),angular.module("ngSocial").directive("ngSocialMailru",["$parse",function(a){var b={counter:{url:"//connect.mail.ru/share_count?url_list={url}&callback=1&func=JSON_CALLBACK",getNumber:function(a){for(var b in a)if(a.hasOwnProperty(b))return a[b].shares}},popup:{url:"http://connect.mail.ru/share?share_url={url}&title={title}",width:550,height:360}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-mailru"),f&&(b.urlOptions={url:a(e.url)(c),title:a(e.title)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),angular.module("ngSocial").directive("ngSocialPinterest",["$parse",function(a){var b={counter:{url:"//api.pinterest.com/v1/urls/count.json?url={url}&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://pinterest.com/pin/create/button/?url={url}&description={title}&media={image}",width:630,height:270}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-pinterest"),f&&(b.urlOptions={url:a(e.url)(c),title:a(e.title)(c),image:a(e.image)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),angular.module("ngSocial").directive("ngSocialGithubForks",function(){var a={counter:{url:"//api.github.com/repos/{user}/{repository}?callback=JSON_CALLBACK",getNumber:function(a){return a.data.forks_count}},clickUrl:"https://github.com/{user}/{repository}/"};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(b,c,d,e){c.addClass("ng-social-github ng-social-github-forks"),e&&(a.urlOptions={user:d.user,repository:d.repository},b.options=a,b.ctrl=e,e.init(b,c,a))}}}),angular.module("ngSocial").directive("ngSocialGithub",function(){var a={counter:{url:"//api.github.com/repos/{user}/{repository}?callback=JSON_CALLBACK",getNumber:function(a){return a.data.watchers_count}},clickUrl:"https://github.com/{user}/{repository}/"};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(b,c,d,e){c.addClass("ng-social-github"),e&&(a.urlOptions={user:d.user,repository:d.repository},b.options=a,b.ctrl=e,e.init(b,c,a))}}}),app.directive("ngSocialStumbleupon",["$parse",function(a){"use strict";var b={counter:{url:"{proxy}?url={url}&type=stumbleupon&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://www.stumbleupon.com/submit?url={url}&title={title}",width:800,height:600},track:{name:"StumbleUpon",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){if(d.addClass("ng-social-google-plus"),f){b.urlOptions={url:a(e.url)(c),title:a(e.title)(c)};var g=a(e.proxyUrl)(c)||"/proxy.php";b.counter.url=b.counter.url.replace("{proxy}",g),c.options=b,c.ctrl=f,f.init(c,d,b)}}}}]),app.directive("ngSocialMoiKrug",["$parse",function(a){"use strict";var b={popup:{url:"//share.yandex.ru/go.xml?service=moikrug&url={url}&title={title}",width:800,height:600},track:{name:"MoiKrug",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-moi-krug"),f&&(b.urlOptions={url:a(e.url)(c),title:a(e.title)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),app.directive("ngSocialLinkedin",["$parse",function(a){"use strict";var b={counter:{url:"//www.linkedin.com/countserv/count/share?url={url}&format=jsonp&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}&summary={description}",width:600,height:450},click:function(a){return/[\.:\-–—]\s*$/.test(a.pageTitle)||(a.pageTitle+=":"),!0},track:{name:"LinkedIn",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:!0,replace:!0,transclude:!0,template:'
  • \r\n \r\n \r\n \r\n \r\n {{ count }} \r\n
  • ',link:function(c,d,e,f){d.addClass("ng-social-linkedin"),f&&(b.urlOptions={url:a(e.url)(c),title:a(e.title)(c),description:a(e.description)(c)},c.options=b,c.ctrl=f,f.init(c,d,b))}}}]),angular.module("ngSocial").run(["$templateCache",function(a){a.put("/views/buttons.html",'
    ')}]); +function template(a,b,c){"use strict";return a.replace(/\{([^\}]+)\}/g,function(a,d){return d in b?c?c(b[d]):b[d]:a})}var app=angular.module("ngSocial",[]);app.directive("ngSocialButtons",["$compile","$q","$parse","$http","$location",function(a,b,c,d,e){"use strict";return{restrict:"A",scope:{url:"=",title:"=",description:"=",image:"=",showcounts:"="},replace:!0,transclude:!0,template:'
    ',controller:["$scope","$q","$http",function(a,b,c){var d=function(){return a.url||e.absUrl()},f=this;return this.init=function(a,b,c){c.counter&&f.getCount(a.options).then(function(b){a.count=b})},this.link=function(b){b=b||{};var c=b.urlOptions||{};return c.url=d(),c.title||(c.title=a.title),c.image||(c.image=a.image),c.description||(c.description=a.description||""),f.makeUrl(b.clickUrl||b.popup.url,c)},this.clickShare=function(b,c){if(!b.shiftKey&&!b.ctrlKey){b.preventDefault(),c.track&&"undefined"!=typeof _gaq&&angular.isArray(_gaq)&&_gaq.push(["_trackSocial",c.track.name,c.track.action,a.url]);var d=!0;if(angular.isFunction(c.click)&&(d=c.click.call(this,c)),d){var e=f.link(c);f.openPopup(e,c.popup)}}},this.openPopup=function(a,b){var c=Math.round(screen.width/2-b.width/2),d=0;screen.height>b.height&&(d=Math.round(screen.height/3-b.height/2));var e=window.open(a,"sl_"+this.service,"left="+c+",top="+d+",width="+b.width+",height="+b.height+",personalbar=0,toolbar=0,scrollbars=1,resizable=1");e?e.focus():location.href=a},this.getCount=function(e){var g=b.defer(),h=e.urlOptions||{};h.url=d(),h.title||(h.title=a.title);var i=f.makeUrl(e.counter.url,h),j=angular.isUndefined(a.showcounts)?!0:a.showcounts;return j&&(e.counter.get?e.counter.get(i,g,c):c.jsonp(i).success(function(a){e.counter.getNumber?g.resolve(e.counter.getNumber(a)):g.resolve(a)})),g.promise},this.makeUrl=function(a,b){return template(a,b,encodeURIComponent)},this}]}}]),app.directive("ngSocialFacebook",["$parse",function(a){"use strict";var b={counter:{url:"//graph.facebook.com/fql?q=SELECT+total_count+FROM+link_stat+WHERE+url%3D%22{url}%22&callback=JSON_CALLBACK",getNumber:function(a){return 0===a.data.length?0:a.data[0].total_count}},popup:{url:"http://www.facebook.com/sharer/sharer.php?u={url}",width:600,height:500},track:{name:"facebook",action:"send"}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",description:"=description",title:"=title"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-facebook"),e&&a.$watchGroup(["title","url","description"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1],description:d[2]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),app.directive("ngSocialTwitter",["$parse",function(a){"use strict";var b={counter:{url:"//urls.api.twitter.com/1/urls/count.json?url={url}&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://twitter.com/intent/tweet?url={url}&text={title}",width:600,height:450},click:function(a){return/[\.:\-–—]\s*$/.test(a.pageTitle)||(a.pageTitle+=":"),!0},track:{name:"twitter",action:"tweet"}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",title:"=title",description:"=description"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-twitter"),e&&a.$watchGroup(["title","url","description"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1],description:d[2]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),app.directive("ngSocialGooglePlus",["$parse",function(a){"use strict";var b={counter:{url:"//share.yandex.ru/gpp.xml?url={url}",getNumber:function(a){return a.count},get:function(a,c,d){return b._?void c.reject():(window.services||(window.services={}),window.services.gplus={cb:function(a){b._.resolve(a)}},b._=c,void d.jsonp(a))}},popup:{url:"https://plus.google.com/share?url={url}",width:700,height:500},track:{name:"Google+",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",description:"=description",title:"=title"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-google-plus"),e&&a.$watchGroup(["title","url","description"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1],description:d[2]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),app.directive("ngSocialVk",["$parse",function(a){"use strict";var b={counter:{url:"//vkontakte.ru/share.php?act=count&url={url}&index={index}",get:function(a,c,d){b._||(b._=[],window.VK||(window.VK={}),window.VK.Share={count:function(a,c){b._[a].resolve(c)}});var e=b._.length;b._.push(c),d.jsonp(a.replace("{index}",e))}},popup:{url:"http://vk.com/share.php?url={url}&title={title}&description={description}&image={image}",width:550,height:330},track:{name:"VKontakte",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",replace:!0,scope:{url:"=url",description:"=description",title:"=title",image:"=image"},transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-vk"),e&&a.$watchGroup(["url","description","title","image"],function(d,f){d&&(b.urlOptions={url:d[0],description:d[1],title:d[2],image:d[3]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),angular.module("ngSocial").directive("ngSocialOdnoklassniki",["$parse",function(a){var b={counter:{url:"http://connect.ok.ru/dk?st.cmd=extLike&ref={url}&uid={index}",get:function(a,c,d){b._||(b._=[],window.ODKL||(window.ODKL={}),window.ODKL.updateCount=function(a,c){b._[a].resolve(c)});var e=b._.length;b._.push(c),d.jsonp(a.replace("{index}",e))}},popup:{url:"http://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl={url}",width:550,height:360},track:{name:"Odnoklassniki",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",replace:!0,scope:{url:"=url"},transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-odnoklassniki"),e&&a.$watch("url",function(d,f){d&&(b.urlOptions={url:d},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),angular.module("ngSocial").directive("ngSocialMailru",["$parse",function(a){var b={counter:{url:"//connect.mail.ru/share_count?url_list={url}&callback=1&func=JSON_CALLBACK",getNumber:function(a){for(var b in a)if(a.hasOwnProperty(b))return a[b].shares}},popup:{url:"http://connect.mail.ru/share?share_url={url}&title={title}",width:550,height:360}};return{restrict:"C",require:"^?ngSocialButtons",replace:!0,scope:{url:"=url",title:"=title"},transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-mailru"),e&&a.$watchGroup(["title","url"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),angular.module("ngSocial").directive("ngSocialPinterest",["$parse",function(a){var b={counter:{url:"//api.pinterest.com/v1/urls/count.json?url={url}&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://pinterest.com/pin/create/button/?url={url}&description={title}&media={image}",width:630,height:270}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",title:"=title",image:"=image"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-pinterest"),e&&a.$watchGroup(["title","url","image"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1],image:d[2]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),angular.module("ngSocial").directive("ngSocialGithubForks",function(){var a={counter:{url:"//api.github.com/repos/{user}/{repository}?callback=JSON_CALLBACK",getNumber:function(a){return a.data.forks_count}},clickUrl:"https://github.com/{user}/{repository}/"};return{restrict:"C",require:"^?ngSocialButtons",scope:{user:"=user",repository:"=repository"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(b,c,d,e){c.addClass("ng-social-github ng-social-github-forks"),e&&b.$watchGroup(["user","repository"],function(d,f){d&&(a.urlOptions={user:d[0],repository:d[1]},b.options=a,b.ctrl=e,e.init(b,c,a))})}}}),angular.module("ngSocial").directive("ngSocialGithub",function(){var a={counter:{url:"//api.github.com/repos/{user}/{repository}?callback=JSON_CALLBACK",getNumber:function(a){return a.data.watchers_count}},clickUrl:"https://github.com/{user}/{repository}/"};return{restrict:"C",require:"^?ngSocialButtons",scope:{user:"=user",repository:"=repository"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(b,c,d,e){c.addClass("ng-social-github"),e&&b.$watchGroup(["user","repository"],function(d,f){d&&(a.urlOptions={user:d[0],repository:d[1]},b.options=a,b.ctrl=e,e.init(b,c,a))})}}}),app.directive("ngSocialStumbleupon",["$parse",function(a){"use strict";var b={counter:{url:"{proxy}?url={url}&type=stumbleupon&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://www.stumbleupon.com/submit?url={url}&title={title}",width:800,height:600},track:{name:"StumbleUpon",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",title:"=title"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(c,d,e,f){d.addClass("ng-social-google-plus"),f&&c.$watchGroup(["title","url"],function(g,h){if(g){b.urlOptions={title:g[0],url:g[1]};var i=a(e.proxyUrl)(c)||"/proxy.php";b.counter.url=b.counter.url.replace("{proxy}",i),c.options=b,c.ctrl=f,f.init(c,d,b)}})}}}]),app.directive("ngSocialMoiKrug",["$parse",function(a){"use strict";var b={popup:{url:"//share.yandex.ru/go.xml?service=moikrug&url={url}&title={title}",width:800,height:600},track:{name:"MoiKrug",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",title:"=title"},replace:!0,transclude:!0,template:'
  • ',link:function(a,c,d,e){c.addClass("ng-social-moi-krug"),e&&a.$watchGroup(["title","url"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),app.directive("ngSocialLinkedin",["$parse",function(a){"use strict";var b={counter:{url:"//www.linkedin.com/countserv/count/share?url={url}&format=jsonp&callback=JSON_CALLBACK",getNumber:function(a){return a.count}},popup:{url:"http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}&summary={description}",width:600,height:450},click:function(a){return/[\.:\-–—]\s*$/.test(a.pageTitle)||(a.pageTitle+=":"),!0},track:{name:"LinkedIn",action:"share"}};return{restrict:"C",require:"^?ngSocialButtons",scope:{url:"=url",description:"=description",title:"=title"},replace:!0,transclude:!0,template:'
  • {{ count }}
  • ',link:function(a,c,d,e){c.addClass("ng-social-linkedin"),e&&a.$watchGroup(["title","url","description"],function(d,f){d&&(b.urlOptions={title:d[0],url:d[1],description:d[2]},a.options=b,a.ctrl=e,e.init(a,c,b))})}}}]),angular.module("ngSocial").run(["$templateCache",function(a){a.put("/views/buttons.html",'
    ')}]); //# sourceMappingURL=angular-social.map \ No newline at end of file diff --git a/angular-social.map b/angular-social.map index 4c156cd..d358ada 100644 --- a/angular-social.map +++ b/angular-social.map @@ -1 +1 @@ -{"version":3,"file":"angular-social.js","sources":["angular-social.src.js"],"names":["template","tmpl","context","filter","replace","m","key","app","angular","module","directive","$compile","$q","$parse","$http","$location","restrict","scope","url","title","description","image","showcounts","transclude","controller","$scope","getUrl","absUrl","ctrl","this","init","element","options","counter","getCount","then","count","link","urlOptions","makeUrl","clickUrl","popup","clickShare","e","shiftKey","ctrlKey","preventDefault","track","_gaq","isArray","push","name","action","process","isFunction","click","call","openPopup","params","left","Math","round","screen","width","top","height","win","window","open","service","focus","location","href","def","defer","isUndefined","get","jsonp","success","res","resolve","getNumber","promise","encodeURIComponent","data","length","total_count","require","attrs","addClass","test","pageTitle","jsonUrl","deferred","_","reject","services","gplus","cb","number","VK","Share","idx","index","ODKL","updateCount","hasOwnProperty","shares","forks_count","user","repository","watchers_count","proxyUrl","run","$templateCache","put"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"angular-social.js","sources":["angular-social.src.js"],"names":["template","tmpl","context","filter","replace","m","key","app","angular","module","directive","$compile","$q","$parse","$http","$location","restrict","scope","url","title","description","image","showcounts","transclude","controller","$scope","getUrl","absUrl","ctrl","this","init","element","options","counter","getCount","then","count","link","urlOptions","makeUrl","clickUrl","popup","clickShare","e","shiftKey","ctrlKey","preventDefault","track","_gaq","isArray","push","name","action","process","isFunction","click","call","openPopup","params","left","Math","round","screen","width","top","height","win","window","open","service","focus","location","href","def","defer","isUndefined","get","jsonp","success","res","getNumber","resolve","promise","encodeURIComponent","data","length","total_count","require","attrs","addClass","$watchGroup","newValues","oldValues","test","pageTitle","jsonUrl","deferred","_","reject","services","gplus","cb","number","VK","Share","idx","index","ODKL","updateCount","$watch","newValue","oldValue","hasOwnProperty","shares","forks_count","user","repository","watchers_count","proxyUrl","run","$templateCache","put"],"mappings":"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"} \ No newline at end of file diff --git a/angular-social.src.js b/angular-social.src.js index f125a0b..338ea8f 100644 --- a/angular-social.src.js +++ b/angular-social.src.js @@ -144,7 +144,11 @@ app.directive('ngSocialFacebook', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + description: "=description", + title: "=title" + }, replace: true, transclude: true, template: '
  • ' + @@ -160,12 +164,18 @@ app.directive('ngSocialFacebook', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } }; }]); @@ -198,7 +208,11 @@ app.directive('ngSocialTwitter', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title", + description: "=description" + }, replace: true, transclude: true, template: '
  • \ @@ -213,13 +227,19 @@ app.directive('ngSocialTwitter', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); @@ -263,7 +283,11 @@ app.directive('ngSocialGooglePlus', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + description: "=description", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -278,12 +302,18 @@ app.directive('ngSocialGooglePlus', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } }; }]); @@ -323,8 +353,13 @@ app.directive('ngSocialVk', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, replace: true, + scope: { + url: "=url", + description: "=description", + title: "=title", + image: "=image" + }, transclude: true, template: '
  • \ \ @@ -338,15 +373,20 @@ app.directive('ngSocialVk', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope), - description: $parse(attrs.description)(scope), - image: $parse(attrs.image)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['url', 'description', 'title', 'image'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + url: newValues[0], + description: newValues[1], + title: newValues[2], + image: newValues[3] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); @@ -384,8 +424,10 @@ angular.module("ngSocial").directive('ngSocialOdnoklassniki', ['$parse', functio return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, replace: true, + scope: { + url: "=url" + }, transclude: true, template: '
  • \ \ @@ -399,12 +441,17 @@ angular.module("ngSocial").directive('ngSocialOdnoklassniki', ['$parse', functio if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watch('url', function(newValue, oldValue) { + if(newValue) { + options.urlOptions = { + url: newValue + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); @@ -430,8 +477,11 @@ angular.module("ngSocial").directive('ngSocialMailru', ['$parse', function ($par return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, replace: true, + scope: { + url: "=url", + title: "=title" + }, transclude: true, template: '
  • \ \ @@ -445,13 +495,18 @@ angular.module("ngSocial").directive('ngSocialMailru', ['$parse', function ($par if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); @@ -475,7 +530,11 @@ angular.module("ngSocial").directive('ngSocialPinterest', ['$parse', function ($ return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title", + image: "=image" + }, replace: true, transclude: true, template: '
  • \ @@ -490,14 +549,19 @@ angular.module("ngSocial").directive('ngSocialPinterest', ['$parse', function ($ if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope), - image: $parse(attrs.image)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url', 'image'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + image: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); @@ -517,7 +581,10 @@ angular.module("ngSocial").directive('ngSocialGithubForks', function () { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + user: "=user", + repository: "=repository" + }, replace: true, transclude: true, template: '
  • \ @@ -532,13 +599,18 @@ angular.module("ngSocial").directive('ngSocialGithubForks', function () { if (!ctrl) { return; } - options.urlOptions = { - 'user': attrs.user, - 'repository': attrs.repository - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['user', 'repository'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + user: newValues[0], + repository: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }); @@ -558,7 +630,10 @@ angular.module("ngSocial").directive('ngSocialGithub', function () { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + user: "=user", + repository: "=repository" + }, replace: true, transclude: true, template: '
  • \ @@ -573,13 +648,18 @@ angular.module("ngSocial").directive('ngSocialGithub', function () { if (!ctrl) { return; } - options.urlOptions = { - 'user': attrs.user, - 'repository': attrs.repository - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['user', 'repository'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + user: newValues[0], + repository: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }); @@ -607,7 +687,10 @@ app.directive('ngSocialStumbleupon', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -622,15 +705,21 @@ app.directive('ngSocialStumbleupon', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - var proxyUrl = $parse(attrs.proxyUrl)(scope) || '/proxy.php'; - options.counter.url = options.counter.url.replace('{proxy}', proxyUrl); - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1] + }; + + var proxyUrl = $parse(attrs.proxyUrl)(scope) || '/proxy.php'; + options.counter.url = options.counter.url.replace('{proxy}', proxyUrl); + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } }; }]); @@ -652,7 +741,10 @@ app.directive('ngSocialMoiKrug', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -666,14 +758,19 @@ app.directive('ngSocialMoiKrug', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); - } + + scope.$watchGroup(['title', 'url'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); + } }; }]); @@ -705,7 +802,11 @@ app.directive('ngSocialLinkedin', ['$parse', function($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + description: "=description", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -720,14 +821,18 @@ app.directive('ngSocialLinkedin', ['$parse', function($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope), - description: $parse(attrs.description)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); diff --git a/examples/demo1.html b/examples/demo1.html index d066e8e..fac5a91 100644 --- a/examples/demo1.html +++ b/examples/demo1.html @@ -64,8 +64,8 @@
  • Одноклассники
  • Мой мир
  • Pinterest
  • -
  • GitHub
  • -
  • Forks
  • +
  • GitHub
  • +
  • Forks
  • StumbleUpon
  • Мой круг
  • LinkedIn
  • @@ -78,6 +78,8 @@ controller('DemoCtrl', function($scope) { $scope.current_title = 'Test'; $scope.current_description = 'Test description'; + $scope.user = 'esvit'; + $scope.repository = 'ng-table'; }) diff --git a/src/scripts/02-facebook.js b/src/scripts/02-facebook.js index e2f1261..6ccaba0 100644 --- a/src/scripts/02-facebook.js +++ b/src/scripts/02-facebook.js @@ -26,7 +26,11 @@ app.directive('ngSocialFacebook', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + description: "=description", + title: "=title" + }, replace: true, transclude: true, template: '
  • ' + @@ -42,12 +46,18 @@ app.directive('ngSocialFacebook', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } }; }]); diff --git a/src/scripts/03-twitter.js b/src/scripts/03-twitter.js index c2345f0..a66c759 100644 --- a/src/scripts/03-twitter.js +++ b/src/scripts/03-twitter.js @@ -26,7 +26,11 @@ app.directive('ngSocialTwitter', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title", + description: "=description" + }, replace: true, transclude: true, template: '
  • \ @@ -41,13 +45,19 @@ app.directive('ngSocialTwitter', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); diff --git a/src/scripts/04-google-plus.js b/src/scripts/04-google-plus.js index a5915e2..b7662b2 100644 --- a/src/scripts/04-google-plus.js +++ b/src/scripts/04-google-plus.js @@ -37,7 +37,11 @@ app.directive('ngSocialGooglePlus', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + description: "=description", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -52,12 +56,18 @@ app.directive('ngSocialGooglePlus', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } }; }]); diff --git a/src/scripts/05-vk.js b/src/scripts/05-vk.js index 71c6944..3ad1979 100644 --- a/src/scripts/05-vk.js +++ b/src/scripts/05-vk.js @@ -33,8 +33,13 @@ app.directive('ngSocialVk', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, replace: true, + scope: { + url: "=url", + description: "=description", + title: "=title", + image: "=image" + }, transclude: true, template: '
  • \ \ @@ -48,15 +53,20 @@ app.directive('ngSocialVk', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope), - description: $parse(attrs.description)(scope), - image: $parse(attrs.image)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['url', 'description', 'title', 'image'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + url: newValues[0], + description: newValues[1], + title: newValues[2], + image: newValues[3] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); diff --git a/src/scripts/06-odnoklassniki.js b/src/scripts/06-odnoklassniki.js index 224c845..a0ddf63 100644 --- a/src/scripts/06-odnoklassniki.js +++ b/src/scripts/06-odnoklassniki.js @@ -31,8 +31,10 @@ angular.module("ngSocial").directive('ngSocialOdnoklassniki', ['$parse', functio return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, replace: true, + scope: { + url: "=url" + }, transclude: true, template: '
  • \ \ @@ -46,12 +48,17 @@ angular.module("ngSocial").directive('ngSocialOdnoklassniki', ['$parse', functio if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watch('url', function(newValue, oldValue) { + if(newValue) { + options.urlOptions = { + url: newValue + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); diff --git a/src/scripts/07-mailru.js b/src/scripts/07-mailru.js index 0c1be9f..53e7e08 100644 --- a/src/scripts/07-mailru.js +++ b/src/scripts/07-mailru.js @@ -19,8 +19,11 @@ angular.module("ngSocial").directive('ngSocialMailru', ['$parse', function ($par return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, replace: true, + scope: { + url: "=url", + title: "=title" + }, transclude: true, template: '
  • \ \ @@ -34,13 +37,18 @@ angular.module("ngSocial").directive('ngSocialMailru', ['$parse', function ($par if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); diff --git a/src/scripts/08-pinterest.js b/src/scripts/08-pinterest.js index 93377d3..3367081 100644 --- a/src/scripts/08-pinterest.js +++ b/src/scripts/08-pinterest.js @@ -17,7 +17,11 @@ angular.module("ngSocial").directive('ngSocialPinterest', ['$parse', function ($ return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title", + image: "=image" + }, replace: true, transclude: true, template: '
  • \ @@ -32,14 +36,19 @@ angular.module("ngSocial").directive('ngSocialPinterest', ['$parse', function ($ if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope), - image: $parse(attrs.image)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url', 'image'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + image: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]); diff --git a/src/scripts/09-github-forks.js b/src/scripts/09-github-forks.js index 1625a4e..eab6389 100644 --- a/src/scripts/09-github-forks.js +++ b/src/scripts/09-github-forks.js @@ -13,7 +13,10 @@ angular.module("ngSocial").directive('ngSocialGithubForks', function () { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + user: "=user", + repository: "=repository" + }, replace: true, transclude: true, template: '
  • \ @@ -28,13 +31,18 @@ angular.module("ngSocial").directive('ngSocialGithubForks', function () { if (!ctrl) { return; } - options.urlOptions = { - 'user': attrs.user, - 'repository': attrs.repository - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['user', 'repository'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + user: newValues[0], + repository: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }); diff --git a/src/scripts/09-github.js b/src/scripts/09-github.js index 1dab105..b5864bc 100644 --- a/src/scripts/09-github.js +++ b/src/scripts/09-github.js @@ -13,7 +13,10 @@ angular.module("ngSocial").directive('ngSocialGithub', function () { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + user: "=user", + repository: "=repository" + }, replace: true, transclude: true, template: '
  • \ @@ -28,13 +31,18 @@ angular.module("ngSocial").directive('ngSocialGithub', function () { if (!ctrl) { return; } - options.urlOptions = { - 'user': attrs.user, - 'repository': attrs.repository - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['user', 'repository'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + user: newValues[0], + repository: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }); diff --git a/src/scripts/10-stumbleupon.js b/src/scripts/10-stumbleupon.js index 6c4ef9e..bbc9595 100644 --- a/src/scripts/10-stumbleupon.js +++ b/src/scripts/10-stumbleupon.js @@ -21,7 +21,10 @@ app.directive('ngSocialStumbleupon', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -36,15 +39,21 @@ app.directive('ngSocialStumbleupon', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - var proxyUrl = $parse(attrs.proxyUrl)(scope) || '/proxy.php'; - options.counter.url = options.counter.url.replace('{proxy}', proxyUrl); - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + + scope.$watchGroup(['title', 'url'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1] + }; + + var proxyUrl = $parse(attrs.proxyUrl)(scope) || '/proxy.php'; + options.counter.url = options.counter.url.replace('{proxy}', proxyUrl); + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } }; }]); diff --git a/src/scripts/11-moikrug.js b/src/scripts/11-moikrug.js index e21af0a..661f82b 100644 --- a/src/scripts/11-moikrug.js +++ b/src/scripts/11-moikrug.js @@ -15,7 +15,10 @@ app.directive('ngSocialMoiKrug', ['$parse', function ($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -29,13 +32,18 @@ app.directive('ngSocialMoiKrug', ['$parse', function ($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); - } + + scope.$watchGroup(['title', 'url'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); + } }; }]); diff --git a/src/scripts/12-linkedin.js b/src/scripts/12-linkedin.js index 70c3dd9..2b14b05 100644 --- a/src/scripts/12-linkedin.js +++ b/src/scripts/12-linkedin.js @@ -26,7 +26,11 @@ app.directive('ngSocialLinkedin', ['$parse', function($parse) { return { restrict: 'C', require: '^?ngSocialButtons', - scope: true, + scope: { + url: "=url", + description: "=description", + title: "=title" + }, replace: true, transclude: true, template: '
  • \ @@ -41,14 +45,18 @@ app.directive('ngSocialLinkedin', ['$parse', function($parse) { if (!ctrl) { return; } - options.urlOptions = { - url: $parse(attrs.url)(scope), - title: $parse(attrs.title)(scope), - description: $parse(attrs.description)(scope) - }; - scope.options = options; - scope.ctrl = ctrl; - ctrl.init(scope, element, options); + scope.$watchGroup(['title', 'url', 'description'], function(newValues, oldValues) { + if(newValues) { + options.urlOptions = { + title: newValues[0], + url: newValues[1], + description: newValues[2] + }; + scope.options = options; + scope.ctrl = ctrl; + ctrl.init(scope, element, options); + } + }); } } }]);