$watchOnce

This module adds $watchOnce, $watchGroupOnce, and $watchCollectionOnce to angular scopes. Each of these have the same signature as their angular counterparts. The difference is the listener you provide is only called once, and only when the value is defined. Note that for $watchGroupOnce, it will only be called when every expression's value is defined. Also, $watchGroupOnce is only available in Angular >= 1.3. Once your listner has been called, the watcher stop itself from watching.

Get the code on GitHub: index.js | index.min.js

Or by using bower or npm:
bower|npm install watch-once

To use: include it on your page with a script tag. And add it to your dependencies:
angular.module('app', ['watchOnce']);

Test Results

{{testResults}}