Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确保一个指令在所有其他指令之前运行_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 确保一个指令在所有其他指令之前运行

Javascript 确保一个指令在所有其他指令之前运行,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,是否有一种方法可以确保特定指令在所有其他自定义指令之前运行 我正在使用一个指令动态加载CSS文件,以便更好地适应我的积分器 该指令如下所示: .directive("includeStylesheet", [ '$log', function($log) { return { scope: {}, priority: 1000, controller: function($scope, $element) { var h

是否有一种方法可以确保特定指令在所有其他自定义指令之前运行

我正在使用一个指令动态加载CSS文件,以便更好地适应我的积分器

该指令如下所示:

.directive("includeStylesheet", [ '$log', function($log) {
    return {
        scope: {},
        priority: 1000,
        controller: function($scope, $element) {
          var href = $element.attr("include-stylesheet");
          var filePath = (window.jsPath ? window.jsPath : "styles") + href;
           if ($("link[href=\"" + filePath + "\"]").length === 0){
              if (!document.createStyleSheet){
                  var style = document.createElement("link");
                  style.href = filePath;
                  style.rel = "stylesheet";
                  style.type = "text/css";
                  $("head").append(style);
              } else {
                document.createStyleSheet(filePath);
              }
            };
        }
    }
}])
我一直在玩弄优先级,但即使我将其设置为
9999
,其他指令仍然会首先运行


我的目标是确保在加载CSS文件之前不会触发其他自定义指令。这里有什么方法可以做到这一点吗?

因为CSS文件请求是异步的,Angular不会等待它完成以运行下一个指令。我看不到这样做的方法。我会满足于一种方法,确保这个指令在所有其他指令之前先运行。你能找到一种方法来实现这一点吗?在所有其他指令之前运行此指令并不意味着在调用下一个指令之前将加载CSS文件。让我们假设加载CSS文件需要10秒钟。无法强制Angular(或任何其他JS代码)在继续处理之前等待10秒。好。。。这不完全是真的。。。您可以模拟“活动等待”,但这会阻塞整个代码,这是一种非常糟糕的做法。。。