Skip to content
This repository has been archived by the owner on Jan 24, 2019. It is now read-only.

feat(alias): Created a new ui-alias module for renaming/combining directives #126

Merged
merged 1 commit into from
Nov 25, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions modules/alias/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
ui-alias
--------

Rename third-party directives or quickly generate simple template directives for use internally in your app!

* Sick of the `ui-*` `bs-*` and other such prefixes cluttering up your beautiful html?
* Always find you're calling the same set of directives together?

Now you can **ALIAS** it!

## Installation

1. Load `alias.js`
2. Add `ui.alias` as a dependency
3. Create a `uiAliasConfig` constant on the `ui.alias` module

## Configuration

* Create a `constant` on the `ui.alias` module
* Keys are your alias, while the values are either a string template or a [DirectiveDefinitionObject](http://docs.angularjs.org/guide/directive#writingdirectiveslongversion)
* Aliases create new directives that generate templates
* Alias directives are `replace: true` by default unless explicitly set to `false`

```js
angular.module('ui.alias').constant('uiAliasConfig', {
'alias': '<template dir1 dir2 options="customConfigScopeVar"></template>',
'alias2': {
template: '<another-template></another-template>',
restrict: 'AEC'
}
// Example:
date: '<input ui-date ui-date-format="mm/dd/yyyy">'

});
```

## Notes

* Be careful to avoid creating an alias that fires recursively
Example: `<button>` -> `<ui-button>` -> `<button>`
* You cannot override existing directives. Both the original *and* your alias directives will execute.
* You can create multiple an alias for different configurations of the same directives / templates
14 changes: 14 additions & 0 deletions modules/alias/alias.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
angular.module('ui.alias', []).config(['$compileProvider', 'uiAliasConfig', function($compileProvider, uiAliasConfig){
uiAliasConfig = uiAliasConfig || {};
angular.forEach(uiAliasConfig, function(config, alias){
if (angular.isString(config)) {
config = {
replace: true,
template: config
};
}
$compileProvider.directive(alias, function(){
return config;
});
});
}]);