Я пытаюсь понять, что является наилучшим подходом GENERIC для связи между родительской и дочерней директивой с изолированными областями (они могут быть элементами многократного использования).
означает, что дочерняя директива должна каким-либо образом обновлять родительскую директиву (оба имеют изолированные области), нужно ли мне передать функцию обратного вызова:
например:
.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():
например:
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');
};
}
};
});
Я чувствую, что излучать легче понять в более широких масштабах, но беспокоит производительность и накладные расходы, но Im все еще не уверен
попробовал найти лучший подход в Интернете, но Im все еще топал
ИЗМЕНИТЬ
Я забыл о
требуется
вариант. но я все еще не уверен, что это самое правильное решение. Поскольку это не позволяет мне повторно использовать ребенка или внука, и это делает директиву единым целым.