angular 1.5.0

Наконец-то зарелизили angular.js версии 1.5.0 которую делали с мая прошлого года.

Самая интересная для меня фича - они сделали особый вид директив который назвали компонентами. Использование метода component вместо directive всячески приветствуется и облегчит вам в будущем миграцию на второй angular.

Небольшой пример компонента:

myModule.component('myComponent', {  
  template: '<h1>Hello {{ $ctrl.getFullName() }}</h1>',
  bindings: {
    firstName: '<',
    lastName: '<'
  },
  controller: function() {
    this.getFullName = function() {
      return this.firstName + ' ' + this.lastName;
    };
  }
});

В документации появилась отдельное руководство по компонентам.

Еще из интересного multi-slot transclusion - позволяет делать в одной директиве несколько именованных включений:

myModyle.component('autocompleteWidget', {  
  templateUrl: 'autocomplete-widget-tpl.html',
  transclude: {
    input: 'inputArea',
    results: 'resultsArea'
  }
});
<!-- autocomplete-widget-tpl.html -->  
<div class="autocomplete-container">  
  <div class="search-area">
    <div class="search-icon">
      <i class="fa fa-search"></i>
    </div>
    <div class="search-input" ng-transclude="inputArea"></div>
  </div>
  <div class="results-area">
    <div ng-transclude="resultsArea"></div>
  </div>
</div>  

Это позволит делать проще более сложные и интересные директивы. Кроме того теперь в директивах можно задавать содержимое для transclude которое будет отображать если пользователь директивы не указал свое.

Как вы могли заметить в первом примере, появился новый магический символ для указания типа параметра у директивы < - он означает что такой параметр имеет одностороннее связывание, т.е. директива читает значение этого параметра, но не изменяет. Это позволит убрать лишние вотчеры, что в свою очередь положительно скажется на производительности.

И еще куча других более мелких улучшений и исправлений можно найти в changelog.