1.3にbrowserify組み合わせてイベント駆動にした話

10
1.3Browserify組み合わせて イベント駆動にした話 ng-japan March 21, 2015

Upload: okuno-kentaro

Post on 20-Jul-2015

506 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: 1.3にBrowserify組み合わせてイベント駆動にした話

1.3にBrowserify組み合わせて イベント駆動にした話

ng-japan March 21, 2015

Page 2: 1.3にBrowserify組み合わせてイベント駆動にした話

@armorik83

• 京都から来ました from Kyoto.

• AngularJS Anti-patternsアンチパターン集

• Modern AngularJSetc.

Page 3: 1.3にBrowserify組み合わせてイベント駆動にした話

1.4.0-beta.5

1.3.12 by own project

var angular = require('angular'); console.log(angular.version);

Page 4: 1.3にBrowserify組み合わせてイベント駆動にした話

var angular = require('angular'); console.log(angular.version);

1.4.0-beta.5

^1.3.14 2015-02-24

!!??

Page 5: 1.3にBrowserify組み合わせてイベント駆動にした話

Already supported

• 1.3でBrowserify使った話しようと思ったら、もう対応してました👍

• browserify-shim is useful when you use <=1.3.13thlorenz/browserify-shim

Page 6: 1.3にBrowserify組み合わせてイベント駆動にした話

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組み合わせてイベント駆動にした話

Isolate Scope & broadcast

• Use only Directive's isolate scope

• Use only $broadcast()

• But event names scatteredイベント名文字列が散らばる…

Page 8: 1.3にBrowserify組み合わせてイベント駆動にした話

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組み合わせてイベント駆動にした話

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組み合わせてイベント駆動にした話

Find more on GitHub https://github.com/armorik83/interactive-sem/tree/latent-variable

Thanks a lot!