Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MacKentoch/ff2b3640da65d1960f39d770d54bf99e to your computer and use it in GitHub Desktop.
Save MacKentoch/ff2b3640da65d1960f39d770d54bf99e to your computer and use it in GitHub Desktop.
// angular < 1.5.0 :
////////////////////////////////
// file : demo.directive.js
////////////////////////////////
import {DEMO_CONTROLLER_NAME} from './demo.controller';
export const DEMO_DIRECTIVE_NAME = 'demoDirective';
// before angular 1.5 component : directive was the way to create component
export default function demoDirective() {
let directive = {
restrict : 'E',
scope : {},
bindToController : {
demoAttr1 : '=',
demoAttr2 : '='
},
controller : DEMO_CONTROLLER_NAME,
controllerAs : 'demoCtrl',
template : `
<div>
<h1>
{{demoCtrl.title}}
</h1>
<p>
{{demoCtrl.demoAttr1}}
</p>
<p>
{{demoCtrl.demoAttr2}}
</p>
</div>
`
};
return directive;
}
////////////////////////////////
// file : demo.controller.js
////////////////////////////////
export const DEMO_CONTROLLER_NAME = 'demoController';
export default class demoController {
constructor($service1, $service2) {
this.$service1 = $service1;
this.$service2 = $service1;
}
init() {
this.title = this.service1.getTitle(); // suppose it returns a title string
}
}
// injection :
demoController.$inject = [
'$service1',
'$service2'
];
////////////////////////////////
// file : demo.module.js
////////////////////////////////
import demoController, {DEMO_CONTROLLER_NAME} from './demo.controller';
import demoDirective, {DEMO_DIRECTIVE_NAME} from './demo.directive';
export default angular
.module('demoModule', [])
.controller(DEMO_CONTROLLER_NAME, demoController)
.directive(DEMO_DIRECTIVE_NAME, demoDirective);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment