Firefox中的角度错误“需要隔离范围的多个指令”

时间:2013-11-18 10:38:26

标签: angularjs twitter-bootstrap

我创建了jsBin来说明问题。

在同样使用指令要求隔离范围的元素上使用tooltip from the Angular UI时,例如:

.directive('smile', function() {
  return {
    scope: {},
    template: ':)'
  };
});

我在Firefox中遇到以下错误,但在Chrome中没有:

  

错误:多个指令[smile,tooltip]要求隔离范围   on:< a class =“ng-isolate-scope ng-scope”href =“#”tooltip =“Tooltip”   tooltip-placement =“bottom”smile =“”>

这很奇怪,因为我不希望工具提示要求隔离范围。我的理解是this line in the source说该指令要求一个孤立的范围,并且只有the popup在页面底部注入。

我在这里缺少什么?为什么这个错误只出现在Firefox中?

1 个答案:

答案 0 :(得分:5)

您提到的代码行

  

限制:'EA',

    scope: true,

    link: function link ( scope, element, attrs ) {
      var tooltip = $compile( template )( scope );
      var transitionTimeout;
      var popupTimeout;
     

.....

设置范围为true还会创建 new 范围,该范围原型继承自父范围。 [Google群组]

所以当你这样做

  

范围:{},

同时创建一个新范围,但是已隔离。所以两个范围相同

  

< a>

每个元素只能有一个范围。

对于Firefox问题,请参阅: 相同元素上的孤立范围单一断言适用于Chrome,在Firefox上失败 https://github.com/angular/angular.js/issues/3208