mercoledì 2 luglio 2014

preventDefault and stopPropagation for anchors in AngularJS

Sometimes in an application we use anchor tags to trigger functions on our controller like the following:

<a href="#" data-ng-click="doSomething()">Click me</a<>

This is not a best practice, but in some cases you need to use it anyways. In this case you need to tell the browser to not to handle the anchor like a link and reload the page.

In plain javascript is really simple:

HTML
<a href="#" onclick="doSomething()">Click me</a>

Javascript
...
function doSomething(event)
{
    event.preventDefault();
    event.stopPropagation();

    alert("Hello, world!");
}
...

But now, you want to do this with AngularJS. It's really simple, like in plain javascript. So, you'll write:

HTML
<a href="#" data-ng-click="doSomething(); $event.preventDefault(); $event.stopPropagation();">Click me</a>

Javascript
...
$scope.doSomething = function()
{
    alert("Hello, world!");
}
...

lunedì 26 maggio 2014

JavaScript e AngularJS: plugin utili per lo sviluppo

Vi propongo un paio di plugin utili per lo sviluppo su AngularJS e JavaScript in generale.
  • Chrome:
    • Angular Scope Inspector
      Inspector per l'analisi delle informazioni e delle funzioni contenute negli scope
    • ng-inspector for AngularJS
      Inspector che mostra l'elenco degli scope, dei controller e delle direttive associate adogni scope.
    • JavaScript Errors Notifier
      Mostra un simbolo nella barra degli indirizzi quando avviene un errore javascript.
    • Web Developer
      Barra che mostra diverse utility (Ridimensionamento pagina, blocco cache, etc).
    • jQuery Debugger
      Mostra, tra gli strumenti per sviluppatori, gli eventi e i dati (jquery data) associati al dom
  • Firefox:
    • AngScope
      Inspector degli scope associati al DOM. Richiede Firebug
    • Web Developer
      Lo stesso plugin presente anche su chrome.
    • Firequery
      Debugger per webapp con jQuery. Mostra anche gli eventi e i dati (jquery data). Richiede Firebug