Я работаю над тем, чтобы набрать скорость с 1,5 угловыми компонентами. Я следил за видео Тодда Мотто, чтобы начать работу с компонентами, а также с документацией angular https://docs.angularjs.org/guide/component. а>.
На данный момент кажется, что компоненты заменяют директивы, использующие контроллеры, но в нашем коде 1.5 мы по-прежнему будем использовать директивы для манипулирования dom.
Какова цель $element, $attrs внутри контроллера компонентов? Они кажутся доступными для манипуляций. Вот ссылка на плункер из документации. Я знаю, что они не используют $element, но это пример, который я читаю. http://plnkr.co/edit/Ycjh1mb2IUuUAK4arUxe?p=preview
Но в таком коде...
angular
.module('app', [])
.component('parentComponent', {
transclude: true,
template: `
<div ng-transclude></div>
`,
controller: function () {
this.foo = function () {
return 'Foo from parent!';
};
this.statement = function() {
return "Little comes from this code";
}
}
})
.component('childComponent', {
require: {
parent: '^parentComponent'
},
controller: function () {
this.$onInit = function () {
this.state = this.parent.foo();
this.notice = this.parent.statement();
};
},
template: `
<div>
Component! {{ $ctrl.state }}
More component {{$ctrl.notice}}
</div>
`
})
Какая польза от $element, если мы не манипулируем домом?
template
будет иметь RawDOM
, и это неправильное место для выполнения манипуляций с DOM. - person Pankaj Parkar   schedule 18.02.2016controller: function($element) { ... }
- person jcubic   schedule 19.12.2016