Learning AngularJS Get started with AngularJS web development fast AngularJS is one of the most exciting and innovative new technologies emerging in the world of web development. Designed to simplify the development and testing of web applications, it also provides structure for the entire development process. Websites are no longer simple static content-instead, websites have become much more dynamic, with a single page often serving as the entire site or application. And AngularJS allows web developers to build the necessary programming logic for such applications directly into a web page, binding the data model for the client web application to backend services and databases. AngularJS also allows the extension of HTML so that the UI design logic can be expressed easily in an HTML template file. Learning AngularJS shows you how to create powerful, interactive web applications that have a well-structured, reusable code base that will be easy to maintain. You'll also learn how to leverage AngularJS's innovative MVC approach to implement well-designed and well-structured web pages and web applications. Understand how AngularJS is organized and learn best practices for designing AngularJS applications Find out how to define modules and utilize dependency injection Quickly build AngularJS templates with built-in directives that enhance the user experience Bind UI elements to your data model, so changes to your model and UI occur automatically in tandem Define custom AngularJS directives that extend HTML Implement zoomable images, expandable lists, and other rich UI components Implement client-side services that interact with web servers Build dynamic browser views to provide even richer user interaction Create custom services you can easily reuse Design unit and end-to-end tests for AngularJS applications Contents at a Glance 1 Jumping Into JavaScript Setting Up a JavaScript Development Environment Using Node.js Defining Variables Understanding JavaScript Data Types Using Operators Implementing Looping Creating Functions Understanding Variable Scope Using JavaScript Objects Manipulating Strings Working with Arrays Adding Error Handling 2 Getting Started with AngularJS Why AngularJS? Understanding AngularJS An Overview of the AngularJS Life Cycle Separation of Responsibilities Integrating AngularJS with Existing JavaScript and jQuery Adding AngularJS to Your Environment Bootstrapping AngularJS in an HTML Document Using the Global APIs Creating a Basic AngularJS Application Using jQuery or jQuery Lite in AngularJS Applications 3 Understanding AngularJS Application Dynamics Looking at Modules and Dependency Injection Defining an AngularJS Module Object Creating Providers in AngularJS Modules Implementing Providers and Dependency Injection Applying Configuration and Run Blocks to Modules 4 Implementing the Scope as a Data Model Understanding Scopes Implementing Scope Hierarchy 5 Using AngularJS Templates to Create Views Understanding Templates Using Expressions Using Filters Creating Custom Filters 6 Implementing Directives in AngularJS Views Understanding Directives Using Built-in Directives 7 Creating Your Own Custom Directives to Extend HTML Understanding Custom Directive Definitions Implementing Custom Directives 8 Using Events to Interact with Data in the Model Browser Events User Interaction Events Adding $watches to Track Scope Change Events Emitting and Broadcasting Custom Events 9 Implementing AngularJS Services in Web Applications Understanding AngularJS Services Using the Built-in Services Using the $q Service to Provide Deferred Responses 10 Creating Your Own Custom AngularJS Services Understanding Custom AngularJS Services Integrating Custom Services into Your AngularJS Applications 11 Creating Rich Web Application Components the AngularJS Way Building a Tabbed View Implementing Draggable and Droppable Elements 204 Adding a Zoom View Field to Images Implementing Expandable and Collapsible Elements Adding Star Ratings to Elements A Testing AngularJS Applications Deciding on a Testing Platform Understanding AngularJS Unit Tests Understanding AngularJS End-to-End Testing