Angularjs 如何仅在父指令的ajax调用之后运行子指令的ajax调用

Angularjs 如何仅在父指令的ajax调用之后运行子指令的ajax调用,angularjs,angularjs-directive,angularjs-scope,angular-directive,Angularjs,Angularjs Directive,Angularjs Scope,Angular Directive,我一直在寻找这个问题的答案,但我没有找到任何答案 假设我有两个不同的指令,它们为两个不同的变量收集不同类型的数据。换句话说 <directive-one variable1="xxxx" variable2="yyyy"></directive-one> <directive-two variable1="xxxx" variable2="yyyy"></directive-two> 它们看起来像这样: .directive('directive

我一直在寻找这个问题的答案,但我没有找到任何答案

假设我有两个不同的指令,它们为两个不同的变量收集不同类型的数据。换句话说

<directive-one variable1="xxxx" variable2="yyyy"></directive-one>
<directive-two variable1="xxxx" variable2="yyyy"></directive-two>
它们看起来像这样:

.directive('directiveOne', [function(){
    return {
       restrict: 'E',
       scope: {
           variable1: "@",
           variable2: "@"
       },
       controller: ["$scope", "$http",
                   function($scope, $http){
                       $http.get("data1/url", {params: {variable1: $scope.variable1, variable2: $scope.variable2}})
                            .success(function(data){
                                $scope.data = data;
                            });
       }],
       template: '<div>{{data}}</div>'
    }
}])
现在让我们假设xxxx是一个对象的id,我们希望通过使用搜索端点来查找该对象。yyyy是另一个对象的id,我们也希望通过使用搜索端点来查找该对象

如果我们将指令更改为:

 <directive-one search-variable1="ccccc" search-variable2="ddd"></directive-one>
 <directive-two search-variable1="ccccc" search-variable2="ddd"></directive-two>
并在控制器中创建一个逻辑,该逻辑首先通过api调用将搜索变量转换为id,然后收集数据。我们最终将总共进行6次API调用

我可以这样做吗

 <variable-one-searcher search-variable1="cccc">
     // Inside here we have variable1 = "xxxx"
     <variable-two-searcher search-variable2="dddd">
        // Inside here we have variable2 = "yyyy" and variable1 = "xxxx"
        <directive-one></directive-one>
        <directive-two></directive-two>
     </variable-two-searcher>
 </variable-one-searcher>
我已经尝试了很多与preLink函数和转置之类的组合,但我从来没有让它工作过

由于directiveOne需要执行依赖于另一个API调用的API调用,因此我们需要等待父API调用完成。你是如何实现的


提前谢谢

为什么要使用指令?您会在您的应用程序或其他应用程序中多次使用此选项吗?您可能可以避免使用id。但是,在变量one searcher指令中,请在控制器中设置它,并在指令one中要求该指令,然后在链接函数中执行。在指令中,控制器从父级到子级执行,将函数从子级链接到父级您还可以使用$scope.$broadcast或$scope.$emit作为兄弟指令communication@gr3g对我想把编译后的文件交给其他人,他们可以将其包含在angular application/standalone中,并且会有很多指令需要variable1。总是重写这一部分让人感觉不舒服!我真的不想要求所需的指令必须在搜索程序中,因为您可能直接拥有id,然后您可以在您的链接函数的逻辑中设置可选的require´?variableOneSearcher´,如果它存在,那么您可以处理两个senarioswith'xxxx是对象的id'您是指DOM元素吗?