如何修复角度指令顺序(Firefox和其他浏览器之间的区别)?

时间:2013-11-06 13:46:42

标签: javascript angularjs twitter-bootstrap angularjs-directive

我在一个输入字段上使用angular-strap时间戳。我需要在timepicker hide事件上添加一些操作,所以在timepicker docs之后,我创建了一个执行该操作的指令:

.directive('onTimeHide', function() {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
      element.timepicker().on('hide.timepicker', function(e){

        // my code

      });
    }
  };
});

它在Chrome和Safari下正常运行,但Firefox存在问题,timepicker小部件未显示/打开。小部件的适当dom元素被添加到代码中,但功能不起作用。

经过一些调试后我发现在Firefox中我的指令'on-time-hide'在'bs-timepicker'之前被调用,而在其他浏览器中则是相反的顺序。

如果有任何建议,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

您可以设置priority键。在你的情况下:

.directive('onTimeHide', function() {
  return {
    restrict: 'A',
    priority: -1, // for example
    link: function(scope, element, attrs) {
      element.timepicker().on('hide.timepicker', function(e){

        // my code

      });
    }
  };
});

默认情况下为0但如果要加载第二个,请设置-1