gpt4 book ai didi

javascript - 双簧管 : Nothing happens after JSON response

转载 作者:行者123 更新时间:2023-11-29 16:02:52 24 4
gpt4 key购买 nike

JS:

function OrderFormController($scope, $http) {

$scope.sampleJSON = [];
$scope.sampleJSONDuplicates = [];
oboe('/getPMDResultsByDateAndSeverity')
.done(function(data) {
$scope.sampleJSON.push(data.pmdStructureWrapper);
$scope.sampleJSONDuplicates.push(data.pmdDuplicates);
})
.fail(function() {

console.log('error');
});

}

html:

<body ng-app ng-controller="OrderFormController">

<div class="splash" ng-cloak="">
<h2>Please wait, Loading Review Result</h2>
</div>


<div class="col-md-12 col-lg-12" ng-cloak="">
<div class="panel with-nav-tabs panel-default">
<div class="panel-heading">
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1default" data-toggle="tab">Classes</a></li>
</ul>
</div>
<div class="panel-body">
<div class="tab-content">
<div class="tab-pane fade in active" id="tab1default">
<ul class="col-md-12 col-lg-12">
<li ng-click="showErrorDetails(key)" class="col-sm-12 col-md-4 col-lg-4 eachClassCell"
ng-repeat='(key,value) in sampleJSON'>
<div ng-if="key.indexOf('.cls') > -1">
<div title="{{key}}" class="classNameLabel">{{key}}</div>
<div title="Error count" class="errorContainer">
<span class="errorCount">{{value.pmdStructures.length}}</span>
<span class="errorMeter"
ng-repeat="eachClass in value.pmdStructures | limitTo: 10"></span>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>

<form>


</form>
<footer>
<p>Salesforce Free Code Review, Copyright &copy; 2017</p>
<p>Contact Us : <a href="mailto:****">Mail Us</a>
</p>
</footer>
<script type="application/javascript">

$(function() {
$('.panel-body li').each(function() {
if($.trim($(this).text()) === "") {
$(this).hide();
}
});
});


</script>
</body>

该页面不呈现任何内容。有什么我想念的吗?我知道页面在结果之前呈现,但如何重新呈现它?我必须保持异步,因为当我在 heroku 中托管我的应用程序时,如果我使用来自 ajax 的 async false,调用会超时(30000 毫秒):

var jsonData = $.ajax({
url: "/getPMDResultsByDateAndSeverity",
dataType: "json",
crossDomain: true,
async: false
}).responseText;

当我使用 async false 时,它​​也会不断耗尽堆内存。我修改了服务器端以在最佳级别执行。使用 async false 时:c.****.algo.MetadataLoginUtil:总耗时 26825

在使用 async true 之后:我认为 oboe.js 内部会这样做:

c.****.algo.MetadataLoginUtil:总耗时 6321

以上是从服务器端获取响应所花费的时间。

最佳答案

您需要调用$scope.$apply()done() 的末尾。

因为调用是异步的并且 oboe 没有 Hook 到 angular 的范围框架中,angular 将不知道在您收到 ajax 响应后需要重新呈现页面。

$scope.$apply() 告诉 Angular 作用域已经改变,因此要刷新页面显示。 This question and answer对此进行了更详细的解释。

关于javascript - 双簧管 : Nothing happens after JSON response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com