コントローラーに次の機能があります。
$scope.model.listApplicantStatuses = function(){
var statusChoices = jobsService.getApplicantStatuses();
if(statusChoices !== null)
return statusChoices;
//if($scope.model.listApplicantStatuses.inProgress)
// return;
//$scope.model.listApplicantStatuses.inProgress = true;
jobsService.fetchApplicantStatuses().then(function(data){
jobsService.setApplicantStatuses(data.data);
return data.data;
},
function(data){
$scope.layout.showNotification('error', 10 * 1000, 'we are is experiencing technical difficulties <a href="mailto:support@" class="btn btn-danger">Contact Support</a>');
});
}
対応するサービス コード:
jobsServ.fetchApplicantStatuses = function(){
return $http.get(utils.getBaseUrl() + '/applications/status_choices', utils.getConfig());
}
jobsServ.getApplicantStatuses = function(){
return that.applicantStatusChoices;
},
jobsServ.setApplicantStatuses = function(choices){
that.applicantStatusChoices = choices;
},
DOM の使用例:
<select class="statusSelect" data-ng-model="model.editedApplicant[applicant.id].status" data-ng-show="layout.statusVisible(applicant.id) && !layout.statusLoader[applicant.id]" data-ng-options="key as val for (key, val) in model.listApplicantStatuses()" data-ng-change="model.updateStatus(applicant.id)"></select>
今、私が抱えている問題は、クロムが最初の関数呼び出しが完了するまで待機し、AJAX 呼び出しから取得したデータを提供し、その間に undefined を返し、Firefox が関数を何度も呼び出すことです。不要な XHR リクエストを大量に作成します。
私は、inProgress $scope 変数を設定していたコードをコメントアウトしました。これは、私には jQurish ソリューションのように思えます。また、多くの場所でコードを変更し、このような別のブール値フラグを作成する必要があるためです。サーバーへのすべてのリクエスト。