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">
Как получить значения атрибутов без области видимости?
Эти директивы не обязательно будут использоваться вместе.
Ответы
Ответ 1
В соответствии с вашим кодом для получения значения атрибута вам не нужна изолированная область. Просто используйте это:
directivesModule.directive("capital", function ($parse) {
return {
link: function (scope, element, attrs) {
// get attrs value
attrs.capital
}
}
})