在IE11和FireFox31中以不同顺序初始化Angularjs指令

比诺伊

我有一个指令,其中定义了一个链接函数,在其中添加了一些登录侦听器(自定义)。

并且,各个广播将根据条件从工厂进行。这是我控制器中的功能。但是,当我执行应用程序时,$ rootscope不会使监听器初始化。

我的代码如下

指令:

.directive("tetsdirective",function() {
  return {
    restrict: "E",
    scope: true, 
    replace: true,
    templateUrl: "../xx.htm"
    link: function(scope) {

      $rootScope.$on('loginSuccess', function () {
      alert('login success');}
    }
  }
}

工厂 :

.factory('login',function() {
  return {
    listen : function() {
      $rootScope.$broadcast('loginSuccess');
    }
  }
})

控制器 :

function applicationCtrl(login) {
  login.listen();
}

的HTML

<body ng-controller="applicationCtrl">
  <div class="container">
    <tetsdirective></tetsdirective>
  </div>
</body>

在控制器中添加了用于指令以及服务/工厂的依赖关系。这在IE11中效果很好。即,在进行广播时,如果我们检查$ rootscope侦听器,则会添加列表器,它也会向我发出警报。

但是,当我从Firefox -v31尝试使用它时,广播时不会添加侦听器,并且在调试时,仅在广播之后才进行指令的初始化。

我想知道为什么两个浏览器的行为都不同。我在这里做错什么了吗?

请注意:注入了所有必需的依赖项,包括$ Rootscope。IE / FF中没有显示错误

比诺伊

发现了问题,由于执行顺序,这无法正常工作。

当控制器启动服务进行广播时,链接功能可能尚未将侦听器注册到$ root。

在这里,我只能看到的选择是从指令本身注册侦听器,而不是从链接函数进行注册。

.directive("tetsdirective",function() {
   $rootScope.$on('loginSuccess', function () 
            {
               alert('login success');
             }
 return {
    restrict: "E",
    scope: true, 
    replace: true,
    templateUrl: "../xx.htm"

       }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在AngularJS指令中初始化Zurb Foundation 5

来自分类Dev

IE11和Firefox中的Datepicker支持

来自分类Dev

在firefox和ie11中不会触发oppopstate

来自分类Dev

在IE11和Firefox中拖放文件

来自分类Dev

硒在IE11浏览器窗口初始化后立即抛出NoSuchWindowException

来自分类Dev

如何在指令Angular js的链接函数中确定变量的初始化顺序

来自分类Dev

在JavaScript中初始化Angular指令

来自分类Dev

C ++ 11中的数组声明和初始化

来自分类Dev

= {}和{}样式的初始化在C ++ 11中是否相同?

来自分类Dev

C ++ 11中的数组声明和初始化

来自分类Dev

在C,C ++中初始化的顺序

来自分类Dev

了解C ++中的初始化顺序

来自分类Dev

Scala中的初始化顺序

来自分类Dev

c ++ 11全局初始化顺序和thread_local

来自分类Dev

Java中静态变量的文本顺序和初始化顺序

来自分类Dev

零初始化,静态初始化和价值初始化有何不同?

来自分类Dev

AngularJS初始化指令/控制器的$ scope

来自分类Dev

使用templateUrl的angularjs指令-初始化序列

来自分类Dev

使用templateUrl的angularjs指令-初始化序列

来自分类Dev

angularjs销毁和初始化事件

来自分类Dev

在类的初始化和初始化列表中

来自分类Dev

在控制器和postLink初始化之后,在指令中重置作用域变量;

来自分类Dev

Firefox和IE11中流畅的CSS布局中断

来自分类Dev

SVG元素无法在Firefox和IE11中正确获得焦点

来自分类Dev

Firefox和IE11中流畅的CSS布局中断

来自分类Dev

Wordpress 网站图像未在 IE11 和 Firefox 浏览器中显示

来自分类Dev

C ++ 11中的默认初始化?

来自分类Dev

C ++ 11:列表初始化中的()或{}?

来自分类Dev

竞争顺序仅在初始化AngularJS上

Related 相关文章

热门标签

归档