ng-click and stopPropagation()

I have a calendar grid where each grid cell has an ng-click handler that takes me to the day’s detail view.
At the same time, each grid cell can have an indeterminate amount of events associated, each with an ng-click handler associated that displays the selected event details on a popover.

As you can see there’s a conflict here. When you click on a calendar event there will be two ng-click handlers executed (because the event is bubbling), one will display the popover and the other one will go to the day’s detail view. Not what we want.
Thankfully ng-click scope exposes the $event property, which is the DOM event being propagated.
You can use the DOM event stopPropagation() method to stop event propagation.


Git: change filename case

Whe you modify a filename by just changing to upper/lowercase Git won’t detect it (at least on OSX).
When you want to perform such action you have to explicitly tell Git what’s changed.
Say we have the helloWorld.js file already commited but we want to actually call it HelloWorld.js.
The following Git command will do the trick:

$ git mv -f helloWorld.js HelloWorld.js

AngularJS Datatype Editors

ADE is a bunch of directives and filters for displaying and editing various types of data, using AngularJS.
The typical way that we have seen this done is to have hidden input boxes that toggle to visible when clicked. The important difference with ADE is that the input box is created and destroyed only when needed, so the DOM is not filled with unused elements. This can be a benefit when you have lots of editable things on the page.