Как передать директиву директивы дочернего атрибута или значение attr в родительскую директиву?передать директиву дочерних данных в родительскую директиву
Учитывая widget
директиву с директивой in-viewport
атрибутов, я хочу, чтобы обновить атрибут inView
каждый раз, когда документ прокручивается, и передать обновленное значение родительской директивы widget
:
<widget in-viewport></widget>
В директиве Viewport : принят в качестве атрибута родительской директивы "виджет"
angular.module('app').directive('inViewport', function() {
return {
restrict: 'A',
scope: false, // ensure scope is same as parents
link: function(scope, element, attr) {
angular.element(document).on('scroll', function() {
// I've tried binding it to attr and parent scope of "widget" directive
attr.inView = isElementInViewport(element);
scope.inView = isElementInViewport(element);
});
}
};
});
Widget Директива:
angular.module('app').directive('widget', function() {
return {
restrict: 'AE',
scope: {
inView: '='
},
transclude: false,
templateUrl: 'directives/widgets/widgets.tpl.html',
link: function(scope) {
console.log('In Viewport: ', scope.inView); // Null
что родительская директива? что такое детская директива? – DilumN
Поскольку 'in-viewport' является атрибутом' widget', я думал, что 'widget' будет родительской директивой' in-viewport' – Growler
настолько запутанной, насколько это может показаться, эти директивы являются братьями и сестрами, архитектурно говоря. – Claies