ui-router: Deprecated events and hooks

If you are using latest version of ui-router (now it’s 1.0.0-alpha) you probably already noticed that there are no events that we all got used to: $stateChangeCancel,  $stateChangeError, $stateChangeStart$stateChangeSuccess$stateNotFound. All of them are deprecated in 1.0.0-alpha.3 and you can not use them anymore in 1.0.0-alpha.5.

If you want to move to new version of ui-router you should make such changes:

Continue reading

ui-router: Default child for abstract state

In version 1.0.0alpha0 they finally make it possible! Child for abstract states? No! But now at least it’s possible to create own fix for it due to new $transitionsProvider, in which you could define onBefore hook. You can change the behaviour depends on state options. Let’s use “abstract” property that is boolean and extend it: to make it possible to add child state here:

$transitionsProvider.onBefore({
        to: state => !!state.abstract
      }, ($transition$, $state) => {
        if (angular.isString($transition.to().abstract)) {
          return $state.target($transition.to().abstract);
        }
      });

basically if abstract param is a string we set it like a target. Example of use:

 .state({
          name: 'abstract2',
          url: '/abstract2',
          abstract: 'abstract2.foo', // redirect to 'abstract2.foo'
          template: 'abstract2'
        })

Continue reading

Idea: Grunt/gulp/webpack config builder

grunt-logogulp-2x1-A-_KrEvMuiH7dlwshFw5aw

I don’t know why such kind of service still have not been invented. It’s not only about grunt/gulp or webpack but also about build tools of such kind.

It could be so useful: you just feed your github repo to the service and in step by step wizard create your config file. After all you have pull request with changes(new config file) to your project.

Understanding of component/directive attribute binding types

You probably know that directive component can have 4 different attribute-scope bindings:

  • @” – bind a local scope property to the value of DOM attribute
  • =” – set up a bidirectional binding between a local scope property and an expression passed via the attribute (also for collection “=*” and “=?” if attribute is optional)
  • <” – set up a one-way (one-directional) binding between a local scope property and an expression passed via the attribute
  • &” – provides a way to execute an expression in the context of the parent scope

So I decided to uncover magic of this symbols and recreate their functionality by using attributes from the link function.

Continue reading