ui.routerとdecorator
書いてみたけど使うか分からないのでメモるだけメモっとく。
ui-viewのautoscrollのスクロール位置を固定する
https://github.com/angular-ui/ui-router/wiki/Quick-Reference#autoscroll
ui.routerではui-viewが切り替わった時にautoscrollって属性をつけてあげないとスクロールしてくれない。
$uiViewScrollでは、viewの要素と関係ない位置にスクロールできないので、decoratorでごにょごにょしてやる。
具体例として、ヘッダーをfixedで表示しているとautoscrollを指定したときにそのui-viewの上部にスクロールしてしまうので上のほうがヘッダーに隠れてしまうので、強制的に一番上までスクロールさせたい。
app.config ['$provide', ($provide) -> $provide.decorator '$uiViewScroll', () -> (uiViewElement) ->window.scrollTo(0, 0) ]
$state.goのreloadを常にtrueにしてやる
同じstateに移動できないのやだなーみたいなとき。
app.config ['$provide', ($provide) -> $provide.decorator '$state', ($delegate) -> state = $delegate state.superGo = state.go state.go = (to, params, options) -> options = options || {} if angular.isUndefined options.reload options.reload = true this.superGo(to, params, options) return $delegate ]