Обмен данными между директивами

У меня есть некоторые данные под названиемfoo который живет в области, которая является родителем трех детей:

<div ng-init="foo=[1, 2, 3]">
    <bar foo="{{foo}}" baz="{{odp}}" />
    <mpq foo="{{foo}}" bats="{{maktz}}" />
    <ktr foo="{{foo}}" otr="{{ompg}}" />
</div>

bar.scope = {foo: '=', baz: '@'};
mpq.scope = {foo: '=', bats: '@'};
ktr.scope = {foo: '=', otr: '@'};

Каков наилучший способ поделитьсяfoo&nbsp;между этими тремя директивами? Варианты включают в себя:

Используйте изолированную область для передачиfoo&nbsp;три раза, тем самым дублируя его на четыре областиПусть дочерние директивы наследуют родительскую область видимости и находятbaz, bats, или жеotr&nbsp;наattrsСтавитьfoo&nbsp;на$rootScope&nbsp;и ввести это в директивах ребенка

Или есть другой подход, который лучше?