20,99 €
This book helps beginner-level AngularJS developers organize AngularJS applications by discussing important AngularJS concepts and best practices. If you are an experienced AngularJS developer but haven't written directives or haven't created custom HTML controls before, then this book is ideal for you.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 158
Veröffentlichungsjahr: 2015
Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: April 2015
Production reference: 1240415
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78439-805-7
www.packtpub.com
Author
Manoj Waikar
Reviewers
Mark Coleman
Pavlo Iuriichuk
Mourad Mourafiq
Arvind Ravulavaru
Commissioning Editor
Kunal Parikh
Acquisition Editor
Meeta Rajani
Content Development Editor
Arwa Manasawala
Technical Editor
Shruti Rawool
Copy Editors
Heeral Bhat
Pranjali Chury
Tani Kothari
Sonia Mathur
Karuna Narayanan
Kriti Sharma
Project Coordinator
Danuta Jones
Proofreaders
Simran Bhogal
Bridget Braund
Safis Editing
Indexer
Mariammal Chettiyar
Production Coordinator
Arvindkumar Gupta
Cover Work
Arvindkumar Gupta
Manoj Waikar has been developing software for close to 15 years now. He started writing desktop applications in VB6 and has used almost all of the .NET and C# versions to write enterprise software. His urge to improve his craft led him to explore, and eventually use, open source frameworks such as NHibernate, Spring.NET, NUnit, Moq, and so on, which, until a few years ago, were not commonly used in the .NET world.
He admires RoR (Ruby on Rails) and thanks Microsoft for ASP.NET MVC and Web API. Due to some of the limitations of server-side MVC frameworks, he introduced AngularJS in one of the UK-based start-ups that he worked with and used it to great success.
He is interested in functional programming and loves Clojure (a Lisp for the JVM) and ClojureScript (which compiles to JavaScript). Of late, he has also started exploring F# and considers it the best language for the .NET platform.
First and foremost, I would like to thank my wife, Aboli, for always being there for me and my family. Although I piss her off sometimes with my incessant questions, I admire her decision-making skills and insightful answers. Hopefully, I'll learn from her one day. She even let me take almost a year off from work while she was the earning partner. I hope to return the favor soon. Thanks also to my kids for being patient with me while I was writing and for doing their own studies too—I'll certainly spend more time with them after this book is done.
I am lucky to have not just loving and supportive parents but also a caring and trustworthy extended family, because of my upbringing in a joint family (which is rare these days). Life would certainly be less fun without my uncles, aunts, and dear cousins. Thanks to my many friends for sharing their good (and bad) thoughts, learning, and insights.
Thanks are also due to all my teachers from the schools and colleges I attended for sharing their knowledge and making me capable in this journey of life. Special thanks to my illustrious uncle, Dr. Ganesh Tarey, for teaching me mathematics and physics (the two dreaded subjects) and my brilliant cousin, Anil Bhatnagar, for teaching me many fun math techniques—I started liking math and computers because of you both.
Countless thanks to the creators/maintainers and contributors of excellent open source software/languages/frameworks—software development would be utterly boring without your selfless efforts. Thanks also to all the wonderful authors from whose books I've learned so much—finishing a book is such a Herculean effort in itself.
Thanks to Packt Publishing for giving me the chance to become an author and the entire team at Packt Publishing who endured with me throughout this journey. Special thanks to Meeta Rajani, Arwa Manasawala, and Shruti Rawool for being patient with me and pushing me gently to finish chapter after chapter. This book wouldn't be in your hands without their efforts and help.
My sincerest and heartfelt thanks to the reviewers: Mark, Pavlo, Mourad, and Arvind. They not only pointed out some errors in the code, but also gave excellent suggestions to improve the code and the content. This book is in a much better shape because of you all.
Thanks to the entire IDFC team at Indus software, where I learned the tricks of the trade. Thanks to HCL technologies for my first ever trip to USA and also to the entire team at SunGard Offshore Services, Pune, India, and SunGard Investran, USA, with whom I've spent some fruitful years of my career. I would also like to thank my entire team at PJM Interconnection, USA, for one of the best projects and probably the best work culture. Last but not least, thanks to Intelliheads Technology and my boss, Daniel Niasoff, for letting us use AngularJS—you are the root cause of this book.
Mark Coleman is a full-stack developer focusing on the latest in web technologies. He enjoys learning about new technologies. He also likes to share his knowledge by attending local development groups and blogging (www.kramnameloc.com) about programming topics. When Mark is not absorbing everything to do with development, he enjoys photography and anything pertaining to The Simpsons and is a part-time craft beer/bacon aficionado.
Pavlo Iuriichuk is a frontend lead developer who works at GlobalLogic and has about 7 years of frontend development experience on various platforms, including those on mobile and desktop. He graduated from Kyiv Polytechnic Institute 5 years ago with a master diploma in applied mathematics.
He has previously worked for various outsourcing companies in Ukraine, including Ciklum, Cybervisiontech, and 2K-group.
Previously, he has reviewed HTML5 and CSS3 Transition, Transformation, and Animation, Packt Publishing.
I want to thank my team and friends who encouraged me to review this book that they will use to improve their in-depth skills in frontend technologies.
Mourad Mourafiq is a software engineer and data scientist. After successfully completing his studies in applied mathematics, he worked in an investment bank as a quantitative modeler in the structured products market, specializing in ABS, CDO, and CDS, after which he worked as a quantitative analyst for the largest bank in France.
After a couple of years in the financial world, he developed a passion for machine learning and computational mathematics, and decided to join a start-up that specialized in software mining and artificial intelligence.
He was also involved in reviewing Python for Finance and Getting Started with Python pandas, both by Packt Publishing.
Arvind Ravulavaru is a full-stack consultant with over 6 years of experience in software development. For the last 2 years, he has been working extensively on JavaScript, both on the server and client side. In his spare time, Arvind likes to experiment with new and upcoming technologies. He also blogs at http://thejackalofjavascript.com.
I would like to thank my family, especially my mother, for making all this happen!
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.
To my mother, late Mrs. Usha Waikar
If you've ever wanted to create database-backed Single Page Applications (SPAs), this book will show you how to do it using the power of AngularJS. Along the way, you'll also learn the best practices of AngularJS development and will see how to structure your frontend code that greatly improves maintainability. You'll also learn how to create custom controls using AngularJS directives.
If you've ever wondered how to write applications that update data in real time without refreshing your browsers or without employing server-side push technologies, then this book shows you how easy it is using Firebase and AngularFire. Firebase resembles the document-oriented NoSQL stores, so you'll also learn how to structure your data in Firebase. Finally, you'll use Firebase's anonymous authentication and other best practices learned along the way in a hands-on example application.
Chapter 1, AngularJS Rationale and Data Binding, talks about why AngularJS is needed and why you should choose AngularJS over other client-side/server-side frameworks. It also talks about data binding, shows a simple Hello World application, and an application that demonstrates two-way data binding.
Chapter 2, Working with Data, talks about the whys and hows of dependency injection in Angular. Then it talks about filters and promises and finally shows you how to do Ajax communication using $http and $resource services.
Chapter 3, Custom Controls, is all about directives. It shows how you can write custom elements, attributes, and so on, and also talks about isolate scopes, transclusion, and other stuff about directives.
Chapter 4, Firebase, talks about different types of persistence mechanisms and local versus hosted databases. It then talks about the value proposition of Firebase and discusses AngularFire. Finally, it shows how to structure data while using Firebase and also talks about denormalization.
Chapter 5, Getting Started with AngularFire, shows how to use AngularFire. It shows synchronized objects and arrays and also shows three-way data binding in action.
Chapter 6, Applied Angular and AngularFire, builds an example application that shows how to use Firebase's anonymous authentication. It shows the difference between Angular factory and service, which is a commonly confused topic. It also uses Angular best practices in the example application.
Appendix A, Yeoman, demonstrates the use of yo (for scaffolding), grunt, and gulp (for building) and bower (for dependency management) tools. It discusses the advantage of using these tools and also shows how to install them using Node Package Manager (NPM).
Appendix B, Git and Git Flow, introduces Git which is one of the most widely used version control systems today. It shows the most basic Git commands to help you get started with Git quickly. It also shows simple Git branching and merging, and introduces Git flow—a tool which prescribes a practical branching model and makes branching and merging a joy.
Appendix C, Editors and IDEs, talks about editors and IDEs that have good support for web (HTML, CSS, and JavaScript) development technologies. The obvious candidates are Visual Studio, Eclipse, and Sublime Text and oldies such as Emacs and Vim. It also highlights the support for AngularJS in Brackets (backed by Adobe) and WebStorm (by JetBrains).
All that you need for the examples in this book is a good text editor that has support for HTML/JavaScript syntax highlighting and any modern PC/Laptop.
This book helps beginner-level AngularJS developers to organize AngularJS applications by discussing important AngularJS concepts and best practices. If you are an experienced AngularJS developer, but haven't yet written directives or created custom HTML controls, then this book is ideal for you. This book also shows you how to build real-time apps using Firebase/AngularFire to store and sync data in real time.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
If you have a problem with any aspect of this book, you can contact us at <[email protected]>, and we will do our best to address the problem.
AngularJS is described as a "Superheroic JavaScript MVW Framework" (where MVW stands for Model-View-Whatever). Google search's content description for AngularJS is as follows:
"AngularJS is what HTML would have been, had it been designed for building web-apps. Declarative templates with data-binding, MVW, MVVM, MVC, dependency injection, and great testability story all implemented with pure client-side JavaScript!"
MVVM is a pattern used in building Windows Presentation Foundation (WPF