Я пытаюсь понять, что является лучшим подходом GENERIC для связи между родительской и дочерней директивой с изолированными областями (они могут быть элементами многократного использования).
это означает, что если дочерней директиве необходимо каким-то образом обновить родительскую директиву (обе имеют изолированные области действия), я должен передать функцию обратного вызова:
e.g:
.directive('filterReviewStepBox', function () {
return {
restrict: 'EA',
scop: {
//some data
},
template: '<div>text<reusable-dir></reusable-dir call-back="foo"></div>',
link: function (scope, elem, attrs) {
scope.foo = function () {
console.log('bar');
};
}
};
}).directive('reusableDir', function () {
return {
restrict: 'EA',
scope: {
callBack: '=callBack'
//other data
},
template: '<div>text<button type="button" ng-click="bar"></button></div>',
link: function (scope, elem, attrs) {
scope.bar = function () {
scope.callBack();
}
}
};
});
или я должен использовать $emit():
e.g:
directive('filterReviewStepBox', function () {
return {
restrict: 'EA',
scope: {
// some data
},
template: '<div>text<reusable-dir></reusable-dir></div>',
link: function (scope, elem, attrs) {
scope.$on('foo', function () {
console.log('bar');
});
}
};
}).directive('reusableDir', function () {
return {
restrict: 'EA',
scope: { //some data
},
template: '<div>text<button type="button" ng-click="bar"></button></div>',
link: function (scope, elem, attrs) {
scope.bar = function () {
scope.$emit('foo');
};
}
};
});
Я чувствую, что в более крупном масштабе было бы легче понять, что излучать, но я беспокоюсь о производительности и накладных расходах, но я все еще не уверен.
пытался найти лучший подход в Интернете, но я все равно топнул
ИЗМЕНИТЬ
я забыл о
требовать
вариант. но я все еще не уверен, что это самое правильное решение. Поскольку это не позволяет мне повторно использовать дочерний элемент или внук и как бы делает директиву единым элементом цели.