Angular ES6 utility library. Write directives, controllers and services as ES6 classes.
What you will get
- Write directives, controllers and services like an ES6 classes
- Autoload directives, controllers, services, filters and factories with webpack
Babel
Use version 2.x for the babel 5 and version 3.x for the babel 6
Instalation
npm install angular-es6
Examples
You can find whole example project in the example directory.
Directive
static $inject = '$http'; { this$http = $http; thistemplate = '<div>{{computeName('NICE')}}</div>'; thisrestrict = 'E'; thisscope = name: '=' ; } { thisscope = scope; scope this; } { const $http scope = this; return 'Mr.' + scopename + ' ' + suffix; }
Controller
static $inject = '$scope' '$http'; { this$http = $http; $scope this; } { const $http = this; ... }
Class Inject
As you can see in the examples above. You need to store injected objects somehow. There is a better solution. You can extend your class with class named Inject and then you can use variable named this.$inject.
In next example is called function doThis from the constructor. You can use this.$inject because this object was initialized by Inject constructor.
Do not forget to use (...args). Inject class need to get all injected objects.
; static $inject = '$http'; { super...args; this; } { const $http = this$inject; }
Directive auto Inject
You can use variables from the link function anywhere in your directive code. This feature is available without extending Inject class. Here is small example
static $inject = '$http'; { this$http = $http; thistemplate = '<div>{{computeName('NICE')}}</div>'; thisrestrict = 'E'; thisscope = name: '=' ; } { scope this; } { const scope element = thislink$inject; elementtext'Mr.' + scopename + ' ' + suffix; }
Auto load directives
Each directory need to have file index.js with content like this:
;const MODULE_NAME = 'myProject.directives'; load;;
More examples you can find in the example directory.
Pull request
Pull requests are welcome
Run build for production
npm run build
Run build for development
npm run dev