Javascript 显示内容之前的模式加载

Javascript 显示内容之前的模式加载,javascript,html,angularjs,twitter-bootstrap,Javascript,Html,Angularjs,Twitter Bootstrap,我正在使用从REST调用接收到的内容呈现引导模式,但是在内容可以填充之前呈现该模式 模态加载事件发生在按钮单击上,如果我在几秒钟后再次单击该按钮,则模态将显示填充的内容 如何延迟模式呈现,直到REST调用的内容到达 模态: <!--- Get Fields ---> <div class="modal fade" id="myModal" > <div class="modal-dialog modal-lg"> <div clas

我正在使用从REST调用接收到的内容呈现引导模式,但是在内容可以填充之前呈现该模式

模态加载事件发生在按钮单击上,如果我在几秒钟后再次单击该按钮,则模态将显示填充的内容

如何延迟模式呈现,直到REST调用的内容到达

模态:

<!--- Get Fields --->

<div class="modal fade" id="myModal" >
    <div class="modal-dialog modal-lg">
      <div class="modal-content">
        <div class="modal-header">
          <h4 class="modal-title">Configure Fields</h4>
          <button type="button" class="close" data-dismiss="modal">&times;</button>
        </div>
        <div class="modal-body">
          <div class="row">
           <div class="col-md-6">                 
             <div class="checkbox">
                <label> <strong>Show Fields</strong>&nbsp;</label>
               <input type="checkbox" id="select_all" ng-click="multiSelectCheckBox()">
               <label for="select_all">Select All</label>
             </div>    
           </div>
           <div class="col-md-6">

           </div>
           <hr/> 
           <div class="col-md-12">
              <ul class="columns_3 list-unstyled" data-columns="3">
                        <li ng-repeat="(key,field) in fields">
                            <div class="checkbox">
                                <input type="checkbox" id="jirafield{{$index}}" name="{{key}}"
                                    ng-checked="field.required || selectallcheckboxes || inselectedfields(field)"
                                    ng-disabled="field.required"
                                    ng-model="field.isActive"
                                    ng-click="checkBoxSelect(key,field)"> <label
                                    for="jirafield{{$index}}">{{field.name}}</label>
                            </div>
                        </li>
                    </ul>
           </div>
        </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-info" data-dismiss="modal" ng-click="savefields()">Save</button>
          <button type="button" class="btn btn-cancel" data-dismiss="modal" ng-click="clearselectedfields()">Close</button>
        </div>
      </div>
    </div>
</div>
JS服务调用:

$scope.getfieldsfromJIRA = function(projectkey, domain, auth, username, password){
                //if(!$scope.fieldssaved){
                    var authenticatedToken = auth +" "+ window.btoa(username+":"+password);
                    projectsettingsfactory.getfieldsfromJIRA(projectkey, domain, authenticatedToken).then(function successCallBack(response){
                        angular.forEach(response.data.projects, function(project){
                            angular.forEach(project.issuetypes, function(issuetype){
                                angular.forEach(issuetype.fields, function(field, key){
                                    $scope.fields[key] = field;
                                    if(field.required){
                                        $scope.requiredfields[key] = field;
                                        $scope.selectedfields[key] = field;
                                    }
                                });
                            });
                        });

                        if(Object.keys($scope.fields).length === Object.keys($scope.selectedfields).length){
                            $scope.selectallcheckboxes = true;
                        }
                    }, function errorCallBack(response){
                        alerts.error("Error in finding fields");
                    });
}

在restapi调用的success函数中编写模式open调用。单击可以进行API调用,这样,模态肯定会有所请求的数据

setTimeout(函数(){
$('#myModal').modal();

}, 3000);可以共享代码吗?$(…)。模式不是函数。出现此错误。使用它或将$更改为jQuery,这样它将使用jQuery(“#myModal”).modal();等待3秒钟实际上是非常糟糕的做法。在慢速网络或繁重的操作中,rest调用实际上可能需要更长的时间,而在快速网络中,3秒似乎是任意长的。
$scope.getfieldsfromJIRA = function(projectkey, domain, auth, username, password){
                //if(!$scope.fieldssaved){
                    var authenticatedToken = auth +" "+ window.btoa(username+":"+password);
                    projectsettingsfactory.getfieldsfromJIRA(projectkey, domain, authenticatedToken).then(function successCallBack(response){
                        angular.forEach(response.data.projects, function(project){
                            angular.forEach(project.issuetypes, function(issuetype){
                                angular.forEach(issuetype.fields, function(field, key){
                                    $scope.fields[key] = field;
                                    if(field.required){
                                        $scope.requiredfields[key] = field;
                                        $scope.selectedfields[key] = field;
                                    }
                                });
                            });
                        });

                        if(Object.keys($scope.fields).length === Object.keys($scope.selectedfields).length){
                            $scope.selectallcheckboxes = true;
                        }
                    }, function errorCallBack(response){
                        alerts.error("Error in finding fields");
                    });
}