There are a lot of articles on the said subject, so why one more ?
Most articles which are present over the internet either provide the theoretical details or some code snippets. I believe that reading code snippets will Never clear the subject, and people are often boring to create a project and make them run. I personally feel that live coding brief is the best way to understand and memorize a concept.
I have created a small code setup which you can run from the page itself and the 8 Minute Video guides you through the concepts which I try to explain line by line in the code.
Click Image to Test Code → Codepen
You may also Like : AngularJS : Service v/s Factory v/s Provider - Get Interview Ready in 15 Minutes