<div dir="ltr"><div>Thank you Stephen for your message, is good to know it's a good material to help other dev to improve an app or do their first steps.</div><div><br></div><div>One thing I've fixed last week in my code is how I handle my factories, I was writing my factories (models in the Rails way) with a function named addFunctions to extend my model, I wrote a post in my blog with a better way: <a href="http://blog.agustinvinao.com/post/75902412354/better-code-for-angularjs-models-in-your-app">http://blog.agustinvinao.com/post/75902412354/better-code-for-angularjs-models-in-your-app</a></div>
<div><br></div><div>Now you only do a 'new ModelName()' and you will be able to use all the defined functionality.</div><div><br></div><div>Let me know if you have any questions.</div></div><div class="gmail_extra">
<br clear="all"><div><div dir="ltr"><font color="#999999">-- <br>--</font><div><font color="#999999">Agustin Viñao</font></div><div>







<p><font color="#999999"><b>Paradox</b>: Life is a mystery. Don't waste time trying to figure it out. / <b>Humor</b>: Keep a sense of humor, especially about yourself. It is a strength beyond all measure. / <b>Change</b>: Know that nothing stays the same.</font></p>
</div><div><font color="#999999">Web Developer - Ruby - Javascript</font></div><div><font color="#999999"><br></font></div><div><font color="#999999">m: <a href="mailto:agustinvinao@gmail.com" target="_blank">agustinvinao@gmail.com</a></font></div>
<div><span style="color:rgb(153,153,153)">t: </span><a href="http://twitter.com/agustinvinao" target="_blank">http://twitter.com/agustinvinao</a><br></div><div><span style="font-family:Helvetica;font-size:12px"><font color="#999999">w: <a href="http://www.agustinvinao.com/" target="_blank">http://www.agustinvinao.com</a></font></span></div>
<div><span style="font-family:Helvetica;font-size:12px"><font color="#999999">g</font>: <a href="http://github.com/agustinvinao" target="_blank">http://github.com/agustinvinao</a></span></div><div><div><font color="#999999">l: <a href="http://ar.linkedin.com/in/agustinvinao" target="_blank">http://ar.linkedin.com/in/agustinvinao</a></font></div>
</div><div><font color="#999999">f: <a href="http://www.facebook.com/saltoaciegas" target="_blank">http://www.facebook.com/saltoaciegas</a></font></div><div><span style="color:rgb(153,153,153)">g+: </span><a href="http://profiles.google.com/agustinvinao" target="_blank">http://profiles.google.com/agustinvinao</a><br>
</div></div></div>
<br><br><div class="gmail_quote">On Wed, Feb 19, 2014 at 12:33 PM, Stephen Masters <span dir="ltr"><<a href="mailto:stephen.masters@me.com" target="_blank">stephen.masters@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div>Agustin,</div><div><br></div><div>I just wanted to say well done on including services in your example as an equivalent to Rails models. I find it a much better way of thinking of them compared to pretty much every other explanation of AngularJS services out there.</div>
<div><br></div><div>I have spent quite a bit of time over the past week or so going through online AngularJS materials, and pretty much everything (including the main tutorial) seems to treat services as an afterthought. The Green & Seshadri book from O’Reilly is a particularly bad example of this. I would have experienced far less pain if those materials had shown the use of services early on.</div>
<div><br></div><div>I’m guessing that it’s easier in tiny demo examples to just dump everything inside a controller, as it involves less code, but an application doesn’t need to be big at all (mine is currently barely 200 lines of JavaScript) before it will benefit from refactoring large chunks out into one or more services. The trouble is that because there are so many examples of using controllers to store models and view state in $scope, noobs such as myself assume that it’s the "AngularJS Way” of doing things. And looking at StackOverflow questions and apps linked from <a href="http://angularjs.org" target="_blank">angularjs.org</a>, that can to lead to some unfortunate design decisions, such as storing variables in $rootScope in order to make them available across multiple controllers.</div>
<div><br></div><div>So thank you again for attempting to demonstrate a well structured AngularJS application, rather than showing how awesome interactivity can be implemented on a web page with 10 lines of code or less. :)</div>
<div><br></div><div>Cheers,</div><div><br></div><div>Steve</div><div><div class="h5"><div><br></div><div><br></div><br><div><div>On 25 Jan 2014, at 14:23, Agustin Viñao <<a href="mailto:agustinvinao@gmail.com" target="_blank">agustinvinao@gmail.com</a>> wrote:</div>
<br><blockquote type="cite"><div dir="ltr">A new post: <a href="http://blog.agustinvinao.com/post/74489979042/angularjs-validations-with-rails-model-validations" target="_blank">http://blog.agustinvinao.com/post/74489979042/angularjs-validations-with-rails-model-validations</a><div>

<br></div><div>AngularJS form validations using Rails model's defined validations, with a code example how we can use those validations in rails to the AngularJS without write all again in our form.</div><div><br></div>

<div>Code example: <a href="https://github.com/agustinvinao/blog-examples/tree/master/form-validation" target="_blank">https://github.com/agustinvinao/blog-examples/tree/master/form-validation</a></div></div><div class="gmail_extra">
<br clear="all">
<div><div dir="ltr"><font color="#999999">-- <br>--</font><div><font color="#999999">Agustin Viñao</font></div><div><p><font color="#999999"><b>Paradox</b>: Life is a mystery. Don't waste time trying to figure it out. / <b>Humor</b>: Keep a sense of humor, especially about yourself. It is a strength beyond all measure. / <b>Change</b>: Know that nothing stays the same.</font></p>

</div><div><font color="#999999">Web Developer - Ruby - Javascript</font></div><div><font color="#999999"><br></font></div><div><font color="#999999">m: <a href="mailto:agustinvinao@gmail.com" target="_blank">agustinvinao@gmail.com</a></font></div>

<div><span style="color:rgb(153,153,153)">t: </span><a href="http://twitter.com/agustinvinao" target="_blank">http://twitter.com/agustinvinao</a><br></div><div><span style="font-family:Helvetica;font-size:12px"><font color="#999999">w: <a href="http://www.agustinvinao.com/" target="_blank">http://www.agustinvinao.com</a></font></span></div>

<div><span style="font-family:Helvetica;font-size:12px"><font color="#999999">g</font>: <a href="http://github.com/agustinvinao" target="_blank">http://github.com/agustinvinao</a></span></div><div><div><font color="#999999">l: <a href="http://ar.linkedin.com/in/agustinvinao" target="_blank">http://ar.linkedin.com/in/agustinvinao</a></font></div>

</div><div><font color="#999999">f: <a href="http://www.facebook.com/saltoaciegas" target="_blank">http://www.facebook.com/saltoaciegas</a></font></div><div><span style="color:rgb(153,153,153)">g+: </span><a href="http://profiles.google.com/agustinvinao" target="_blank">http://profiles.google.com/agustinvinao</a><br>

</div></div></div>
<br><br><div class="gmail_quote">On Wed, Jan 22, 2014 at 6:17 AM, Paul Jackson <span dir="ltr"><<a href="mailto:pjackson@mbs-projects.com" target="_blank">pjackson@mbs-projects.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div>Great post Agustin. As someone getting up to speed with Angular/Rails, I found this simple, practical example really useful.</div><span><font color="#888888"><div><br>
</div><div>Paul</div></font></span><div><div><div><br></div><div><br></div><br><div><div>On 21 Jan 2014, at 19:34, Agustin Viñao <<a href="mailto:agustinvinao@gmail.com" target="_blank">agustinvinao@gmail.com</a>> wrote:</div>

<br><blockquote type="cite"><div dir="ltr">After I saw all this comments I wrote a post in my blog explaining how to move something in your Rails app to an AngularJS app.<div><br></div><div>The example I'm using for this time only consumes and renders data, you can see this example working here <a href="http://opendatamdq.com.ar/providers/singlepage" target="_blank">http://opendatamdq.com.ar/providers/singlepage</a>.</div>


<div><br></div><div><a href="http://blog.agustinvinao.com/post/74084133569/rails-angularjs-a-generic-approach" target="_blank">http://blog.agustinvinao.com/post/74084133569/rails-angularjs-a-generic-approach</a><br></div>

<div><br></div><div>
This post covers:</div><div><ul><li>Create the AngularJS app</li><li>Prepare your rails app</li><li>Define all routes your AngularJS is going to use.</li><li>Define Models/Controllers in your AngularJS app.</li><li>Define your AngularJS view and render data.</li>


</ul><div>My example uses many other things like filters, directives, etc but for now I've started with the most generic things you need to understand to use AngularJS. In this case my approach is try to avoid massive changes in my rails code and do ir all I can to divide my Rails app and my AngularJS app.</div>


</div><div><br></div><div>Thanks and sorry if my english is not good enough, is not my natural language. </div><div><br></div><div>If anyone have any questions, please let me know.</div></div><div class="gmail_extra"><br clear="all">


<div><div dir="ltr"><font color="#999999">-- <br>--</font><div><font color="#999999">Agustin Viñao</font></div><div><p><font color="#999999"><b>Paradox</b>: Life is a mystery. Don't waste time trying to figure it out. / <b>Humor</b>: Keep a sense of humor, especially about yourself. It is a strength beyond all measure. / <b>Change</b>: Know that nothing stays the same.</font></p>


</div><div><font color="#999999">Web Developer - Ruby - Javascript</font></div><div><font color="#999999"><br></font></div><div><font color="#999999">m: <a href="mailto:agustinvinao@gmail.com" target="_blank">agustinvinao@gmail.com</a></font></div>


<div><span style="color:rgb(153,153,153)">t: </span><a href="http://twitter.com/agustinvinao" target="_blank">http://twitter.com/agustinvinao</a><br></div><div><span style="font-family:Helvetica;font-size:12px"><font color="#999999">w: <a href="http://www.agustinvinao.com/" target="_blank">http://www.agustinvinao.com</a></font></span></div>


<div><span style="font-family:Helvetica;font-size:12px"><font color="#999999">g</font>: <a href="http://github.com/agustinvinao" target="_blank">http://github.com/agustinvinao</a></span></div><div><div><font color="#999999">l: <a href="http://ar.linkedin.com/in/agustinvinao" target="_blank">http://ar.linkedin.com/in/agustinvinao</a></font></div>


</div><div><font color="#999999">f: <a href="http://www.facebook.com/saltoaciegas" target="_blank">http://www.facebook.com/saltoaciegas</a></font></div><div><span style="color:rgb(153,153,153)">g+: </span><a href="http://profiles.google.com/agustinvinao" target="_blank">http://profiles.google.com/agustinvinao</a><br>


</div></div></div>
<br><br><div class="gmail_quote">On Mon, Jan 20, 2014 at 11:10 PM, Don Werve <span dir="ltr"><<a href="mailto:don@werve.net" target="_blank">don@werve.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>On Jan 20, 2014, at 18:55 , David Burrows <<a href="mailto:david@designsuperbuild.com" target="_blank">david@designsuperbuild.com</a>> wrote:<br>
<br>
> Jasim, just catching up on this thread, thanks for the extensive notes, massively useful - you should put this up somewhere (blog, company site, whatever) people ask me about Rails/Angular all the time and would love to be able to point them at this.<br>



<br>
</div>I second that, and as an added bonus will tweet the hell out of it to my massive following of ~ 300 people. It's an excellent write-up.<br>
<br>
There's definitely a need for more people that work with Angular to post best practices and real-world production pitfalls and solutions.<br>
<div>_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
<a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</div></blockquote></div><br></div>
_______________________________________________<br>Chat mailing list<br><a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br><a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>

</blockquote></div><br></div></div></div></blockquote></div><br></div>
_______________________________________________<br>Chat mailing list<br><a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br><a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</blockquote></div><br></div></div></div></blockquote></div><br></div>