# angular-ladda
![License](https://img.shields.io/npm/l/angular-ladda.svg)
![Bower](https://img.shields.io/bower/v/angular-ladda.svg) [![NPM](https://img.shields.io/npm/v/angular-ladda.svg)](https://www.npmjs.com/package/angular-ladda)
[![Build Status](https://travis-ci.org/remotty/angular-ladda.svg?branch=master)](https://travis-ci.org/remotty/angular-ladda)
An angular directive wrapper for Ladda.
[Check out the demo page.](http://remotty.github.io/angular-ladda)
## Getting started
(1) Get angular-ladda via [Bower](http://bower.io/)
```sh
$ bower install angular-ladda
```
or add bower.json
```sh
$ bower install angular-ladda --save
```
(2) add css & javascript link to html
```html
...
...
...
```
**!!!Order of *.js includes is very important!!!**
(3) add `'angular-ladda'` to your main module's list of dependencies
```javascript
var myApp = angular.module('myApp', ['angular-ladda']);
```
(4) enjoy!
## Quick example
### options
use `laddaProvider`
- style
- expand-left
- expand-right
- expand-up
- expand-down
- zoom-in
- zoom-out
- slide-left
- slide-right
- slide-up
- slide-down
- contract
```js
angular.module(xxxx)
.config(function (laddaProvider) {
laddaProvider.setOption({ /* optional */
style: 'expand-left',
spinnerSize: 35,
spinnerColor: '#ffffff'
});
})
```
### controller
```javascript
$scope.login = function() {
// start loading
$scope.loginLoading = true;
loginService.login(function() {
// stop loading
$scope.loginLoading = false;
});
}
```
### view
basic
```html
```
change style of effect
```html
```
change size of spinner
```html
```
change color of spinner
```html
```
## Browserify support
angular-ladda doesn't work properly with browserify, since it references the Spinner and Ladda libraries, which are not proper AMD modules (and are also not always used as such in angular-ladda's code).
In order to make it works with browserify you will need to use browserify-shim.
```sh
$ npm install --save browserify-shim
```
in your package.json, add the following object:
```js
"dependencies": {
...
},
"browserify-shim": {
"ladda": "global:Ladda",
"spin.js": "global:Spinner"
}
```
require Spinner, Ladda and angular-ladda wherever you usually require external modules (the ordering here is important):
```javascript
window.Spinner = require('/components/ladda/js/spin');
window.Ladda = require('/components/ladda/js/ladda');
require('/components/angular-ladda/dist/angular-ladda');
```
## Using ladda-themeless.min.css
overrides in your `bower.json` (Thanks @benjamincharity)
```
{
"name": "client",
"version": "0.0.0",
"dependencies": {
"ladda": "~0.9.8"
},
"overrides": {
"ladda": {
"main": [
"dist/ladda-themeless.min.css"
]
}
}
}
```
## Links
* [Ladda](http://lab.hakim.se/ladda/)
## Contributing
1. Fork it ( https://github.com/remotty/angular-ladda/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
### setup
```
$ bower install
$ npm install
$ node_modules/protractor/bin/webdriver-manager update
```
### test
```
$ gulp test
```
### build
```
$ gulp
```