AngularJs:要求隔离范围的多个指令

时间:2014-01-12 09:50:54

标签: javascript 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 个答案:

答案 0 :(得分:17)

根据您的代码,您不需要隔离范围来获取属性值。只需使用:

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

      // get attrs value
      attrs.capital

    }
}
})