Service $localStorage

Service para se trabalhar com a API de localStorage do browser.

// Adiciona um valor "value" sob a chave "key"
$localStorage.put( "key", "value" );

// Adiciona um valor JSON sob a chave "key"
$localStorage.put( "key", { a: 123, b: true, c: "foo" } );

// Obtem o valor da chave "key"
$localStorage.get( "key" );
// => { a: 123, b: true, c: "foo" }

// Remove a chave "key"
$localStorage.remove( "key" );

// Remove todos itens
$localStorage.removeAll();

À exceção do método .get(), todos os outros retornam o próprio service $localStorage.

Service $notification

É possível adicionar notificações à página usando o factory $notification. As notificações são automaticamente fechadas após 3s.

$notification.default( 'Esta é uma notificação padrão.' );
$notification.success( 'Esta é uma notificação de sucesso.' );
$notification.error( 'Esta é uma notificação de erro.' );

É possível configurar o timeout da notificação (em ms) usando a fase de configuração do Angular.js:

app.config([ "$notificationProvider", function( $notificationProvider ) {
    // Toda notificação irá durar 5s, por padrão
    $notificationProvider.defaultTimeout = 5000;
}]);

Service $templatePromise

Cria uma promise para uma string de template ou uma URL de um template, útil para unificar o recebimento de um template.
O retorno da promise é o conteúdo do template no tipo string.

var promise = $templatePromise( template, templateUrl ).then(function( html ) {
    console.log( html );
    // => "<div ng-controller='...'>...</div>"
});

Service $url

Utilidade para construção e manipulação de URLs. Permite manipular todos os componentes de uma URL (protocolo, usuário/senha, path, query string, etc).

var url = $url();
// construtor também aceita uma string ou outra instância de $url
// var url1 = $url( "http://example.com" );
// var url2 = $url( url1 );

url.protocol( "https" );
url.protocol();
// => "https"

url.user( "foo" );
url.user();
// => "foo"

url.password( "barbaz" );
url.password();
// => "barbaz"

url.host( "example.com" );
url.host();
// => "example.com"

url.port( 8080 );
url.port();
// => 8080

url.path( "/foo/bar.html" );
url.path();
// => "/foo/bar.html"

url.query( "bar", "foo" );
url.query({
    baz: "quux"
});

url.query( "bar" );
// => "foo"

url.query();
// => { bar: "foo", baz: "quux" }

url.hash( "foobarbaz" );
url.hash();
// => "foobarbaz"

url.toString();
// => "https://foo:barbaz@example.com:8080/foo/bar?baz=qux#foobarbaz

Filtro autodate

Formata qualquer valor válido do filtro date ao formato brasileiro de data e hora. Se a hora for 00:00, a mesma não é mostrada.
Opcionalmente, pode-se usar o adjunto "às" separando a data e a hora.

Data: 2016-07-14 20:00
Data filtrada: {{ '2016-07-14T20:00:00Z' | autodate }}
Data filtrada com adjunto "às": {{ '2016-07-14T20:00:00Z' | autodate: true }}

Data: 2016-07-14
Data filtrada: {{ '2016-07-14' | autodate }}
Data filtrada com adjunto "às": {{ '2016-07-14' | autodate: true }}

<p>
    Data: <code>2016-07-14 20:00</code><br>
    Data filtrada: <code>{{ '2016-07-14T20:00:00Z' | autodate }}</code><br>
    Data filtrada com adjunto "às": <code>{{ '2016-07-14T20:00:00Z' | autodate: true }}</code>
</p>

<p>
    Data: <code>2016-07-14</code><br>
    Data filtrada: <code>{{ '2016-07-14' | autodate }}</code><br>
    Data filtrada com adjunto "às": <code>{{ '2016-07-14' | autodate: true }}</code>
</p>

Filtro offset

Corta um array array a partir do índice offset e retorna os itens restantes. Útil para fazer paginações em combinação com o filtro limitTo.

Array original:
{{ arr }}
Array com offset:
{{ arr | offset: offset }}
<div class="syo-field syo-field-inline">
    <label>Offset:</label>
    <input type="number" ng-model="offset" min="0">
</div>

<div>
    Array original:
    <pre>{{ arr }}</pre>
</div>

<div>
    Array com offset:
    <pre>{{ arr | offset: offset }}</pre>
</div>

Filtro removeAccents

Remove acentuação de uma string input, ou da propriedade prop de um objeto input. Se input for um array, o mesmo ccmportamento é aplicado para cada item do array.

Sem acentuação: {{ str | removeAccents }}
<div class="syo-field syo-field-inline">
    <label>Com acentuação:</label>
    <input type="text" ng-model="str">
</div>

<div>Sem acentuação: {{ str | removeAccents }}</div>