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

Sin*_*eta 2 twitter-bootstrap angularjs

我已经创建了一个jsBin来说明这个问题.

当使用来自Angular UI的工具提示时,该元素也使用指令要求隔离的范围,例如:

.directive('smile', function() {
  return {
    scope: {},
    template: ':)'
  };
});
Run Code Online (Sandbox Code Playgroud)

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

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

这很奇怪,因为我不希望工具提示要求隔离范围.这是我的理解这行源说,该指令并没有要求一个孤立的范围,只有弹出它获取页面的底部注入一样.

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

ica*_*der 5

您提到的代码行说

限制:'EA',

    scope: true,

    link: function link ( scope, element, attrs ) {
      var tooltip = $compile( template )( scope );
      var transitionTimeout;
      var popupTimeout;
Run Code Online (Sandbox Code Playgroud)

.....

设置范围为true还会创建一个新范围,该范围原型继承自父范围.[Google群组]

所以,当你这样做

范围 : {},

也创建一个新的范围,但是孤立.所以两个范围相同

<a>

而且每个元素只能有一个范围.

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