1.3にbrowserify組み合わせてイベント駆動にした話
TRANSCRIPT
![Page 1: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/1.jpg)
1.3にBrowserify組み合わせて イベント駆動にした話
ng-japan March 21, 2015
![Page 2: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/2.jpg)
@armorik83
• 京都から来ました from Kyoto.
• AngularJS Anti-patternsアンチパターン集
• Modern AngularJSetc.
![Page 3: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/3.jpg)
1.4.0-beta.5
1.3.12 by own project
var angular = require('angular'); console.log(angular.version);
![Page 4: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/4.jpg)
var angular = require('angular'); console.log(angular.version);
1.4.0-beta.5
^1.3.14 2015-02-24
!!??
![Page 5: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/5.jpg)
Already supported
• 1.3でBrowserify使った話しようと思ったら、もう対応してました👍
• browserify-shim is useful when you use <=1.3.13thlorenz/browserify-shim
![Page 6: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/6.jpg)
Use only directive
• Each .ts file has one directive
• Towards 2.0, I DON'T use service, factory, ng-controller
![Page 7: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/7.jpg)
Isolate Scope & broadcast
• Use only Directive's isolate scope
• Use only $broadcast()
• But event names scatteredイベント名文字列が散らばる…
![Page 8: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/8.jpg)
Add Listenerimport Store = require('./store'); class DirectiveController { constructor() { Store.addListener(this.someMethod); } } !class Store { addListener(listener) { this.$rootScope.$on(EVENT_NAME, listener); } ! hasChanged(err) { this.$rootScope.$broadcast(EVENT_NAME, err); } }
Gather into one class ✌️
![Page 9: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/9.jpg)
Respect for F...
• An Architecture F...Action -> Dispatcher -> Store -> View
• My Angular 1.3 ProjectChild Directive Controller -> Dispatcher -> Store -> Root Directive
• Without ng-controller, Angular DI, service, factory. Browserify is helpful us.
![Page 10: 1.3にBrowserify組み合わせてイベント駆動にした話](https://reader031.vdocuments.pub/reader031/viewer/2022020218/55ad17e61a28abf33c8b462b/html5/thumbnails/10.jpg)
Find more on GitHub https://github.com/armorik83/interactive-sem/tree/latent-variable
Thanks a lot!