Как выбрать элемент внутри компонента Angular 1.5?

Для компонента component я больше не могу ссылаться на Elem или Attr, как раньше в его отце - - директива, взяв их в качестве аргументов внутри link или post.

Каков наилучший способ выбрать элемент, как я использовал в директиве? Изменилось ли то, как это должно быть сделано?

Почему это не задокументировано в документе компонента для Angular 1.5x?


person Ezeewei    schedule 31.08.2016    source источник
comment
Вы можете ссылаться на него так же, как в контроллере традиционной директивы. Но если вам нужно получить доступ к элементу, то component может быть не лучшим выбором. directive все еще имеет свое место.   -  person a better oliver    schedule 31.08.2016


Ответы (1)


Вы можете сделать то же самое внутри контроллера компонента, внедрив зависимость $element. Но при загрузке контроллера $element не компилируется DOM.

В таком случае вы можете использовать жизненный цикл компонента Angular 1.5, например, у нас есть $postLink(), который будет работать так же, как функция postLink/link директивы Angular 1.

Для доступа к атрибуту вы вводите службу $attrs внутри контроллера.

Компонент

myMod.component('myComponent', {
  template: '<h1>Home</h1>',
  controller: function($element) {
    this.test = 'hello world';
    this.$postLink = function(){
      //here you have compiled DOM
      //you can play with element here.
      console.log("Post LInk DOM", $element);
    }
    console.log("Initial DOM", $element);
  }
});
person Pankaj Parkar    schedule 31.08.2016