angular-data.js is the full data store that supports collections and communicating with persistence layers. angular-cache.js is a simple key-value store and an api-compatible replacement for $cacheFactory with advanced caching capabilities. Use one, or the other, or use both and angular-data will be able to take advantage of some of the features of angular-cache.
AngularJS is a huge framework with that already has many performance enhancements built in, but they can’t solve all our problems. No matter how fast the framework, we can all create sluggish code through bad practices and not understanding key concepts that help it perform well. The following performance pointers are some of the things I’ve learned from developing Angular applications that will hopefully enable you to keep building fast applications.
Sometimes for troubleshooting purposes it is important to understand how many watches exist in an Angular app. You may be surprised to find that in certain scenarios, you are generating many more watches than you anticipate.
Eyal Vardi's insight:
Last month Jonathan Creamer wrote an awesome article on Angular and MVC, The state of AngularJS Controllers. The article touches on misconceptions of client-side MVC and true Model and Controller separation, as well as things we often do wrong by incorrectly using a Controller as a Model.
This article is my rethinking of Angular Controllers, and best practices when using them in your team or for yourself. Getting and setting data outside of the Controller, resolving data is key to using a Model correctly.
Today we’ll be looking at at the ways that Angular helps us do form validations. We’ll be talking more on forms using Angular (just like our other article: Submitting AJAX Forms: The AngularJS Way). Don’t worry though, that article is...
In the past we’ve gone over how to use the great UI-Router for creating AngularJS applications. It provides great flexibility and power when defining states and nested states in your application. Today we’ll be going over three features that UI-Router provides that you might find useful when building your own applications.
Before we take dive in, if you need a quick overview of UI-Router, take a look at our starter guide and an example of UI-Router in action in a multi-step form.
The September Israeli Web Developers Community meeting will be held on September 16, 2013, as usual, at Microsoft Israel offices in Ra'anana. Contact us on our facebook page: http://www.facebook.com/wdcil (and don't forget to Like us) (Regarding parking - please fill in your full name, in Hebrew, when registering, so you will be able to park in the Microsoft guest parking lot)
AngularJS Internals AngularJS is powerful. You can do impressing stuff with it. However, without deep understanding of it's infrastructure you might end up with performance issues. In this session, we will discuss two main components of AngularJS Custom Directives Application Bootstrapping Each component will be explained and analyzed. In some cases we will dive into Angular's source code. Our purpose is to list the Do's & Dont's of Angular. The session is mostly targeted for developers which already have some exeprience with Angular. Agenda 17:30-18:00 - Gathering and Networking 18:00-19:00 - Building Custom AngularJS directives 19:00-19:15 - Break 19:15-20:15 - Understanding and customizing AngularJS Bootstrapping process About the Speaker Eyal Vardi is the co-founder and CO-CEO of E4D Solutions LTD. Eyal was nominated as MVP (Microsoft Most Valuable Professional) for 7 years in a row. The title was given to him based on the contribution to the developers and technical community through lectures, conferences, open house events, blog posts and free tools. Eyal is involved in many cutting edge industry projects, specializing in architecture, design and development of advanced projects and products.
In a previous post about testing I mentioned that route resolves can make authoring unit tests for a controller easier. Resolves can also help the user experience.
A resolve is a property you can attach to a route in both ngRoute and the more robust UI router. A resolve contains one or more promises that must resolve successfully before the route will change. This means you can wait for data to become available before showing a view, and simplify the initialization of the model inside a controller because the initial data is given to the controller instead of the controller needing to go out and fetch the data.
As an example, let’s use the following simple service which uses $q to simulate the async work required to fetch some data.