Подтвердить что ты не робот

AngularJs: несколько директив, требующих изолированного

Я создал две директивы:

directivesModule.directive("capital", function () {
return {
    scope: {
        capital: "@"
    },
    link: function () {}
}
})

directivesModule.directive("country", function () {
return {
    scope: {
        country: "@"
    },
    link: function () {}
}
})

Затем я использую их в одном элементе:

<div country="Russia" capital="Moscow"></div>

В результате я получаю сообщение об ошибке: Error: [$compile:multidir] Multiple directives [capital, country] asking for new/isolated scope on: <div country="Russia" capital="Moscow">

Как получить значения атрибутов без области видимости? Эти директивы не обязательно будут использоваться вместе.

4b9b3361

Ответ 1

В соответствии с вашим кодом для получения значения атрибута вам не нужна изолированная область. Просто используйте это:

directivesModule.directive("capital", function ($parse) {
return {
    link: function (scope, element, attrs) {

      // get attrs value
      attrs.capital

    }
}
})