[AngularJS] Exploring the Angular 1.5 .component() method

Angualr 1.4:

.directive('counter', function counter() {
  return {
    scope: {},
   restrict: 'EA',
transclude: true, bindToController: { count:
'=' }, controller: function () { function increment() { this.count++; } function decrement() { this.count--; } this.increment = increment; this.decrement = decrement; }, controllerAs: 'counter', template: [ '<div class="todo">', '<input type="text" ng-model="counter.count">', '<button type="button" ng-click="counter.decrement();">-</button>', '<button type="button" ng-click="counter.increment();">+</button>', '</div>' ].join('') }; });

 

Angualr1.5:

.compoment('counter',  {
    bindings: {
      count: '='
    },
    controller: function () {
      function increment() {
        this.count++;
      }
      function decrement() {
        this.count--;
      }
      this.increment = increment;
      this.decrement = decrement;
    },
    controllerAs: 'vm',
    template: function($element, $attrs){
      return [
      '<div class="todo">',
        '<input type="text" ng-model="vm.count">',
        '<button type="button" ng-click="vm.decrement();">-</button>',
        '<button type="button" ng-click="vm.increment();">+</button>',
      '</div>'
    ].join('');
    },
    // restrict: 'E',
    // transclude: true
});

 

  • Direcitve need pass in function, compoment need pass in object.
  • 'scope' and 'bindToController' can be replaced with just 'bindings'
  • by default restrict: 'E'
  • by default transclude: true
  • by default, if not given controllerAs, angular will create for you and name is the same as compoment name
posted @ 2015-12-21 02:26  Zhentiw  阅读(382)  评论(0编辑  收藏  举报