我目前正在學習使用Angular.js編寫代碼,我正在做一個項目,其中使用Ajax查詢加載信息。帶回調成ng-repeat元素的Ajax請求Angular.js
要長話短說,我有三個層次DATAS
的- 技能(能力)
---指標(indicateurs)
----結果(resultats)
我有第一個跟蹤當前技能的技能和指標的請求。
HTML
<div ng-controller="AdminController" data-ng-init="listAllCompetences()">
<!-- Level 1 -->
<div data-ng-repeat="competence in competences" class="content level1 topcompetence" id="competence_{{competence.Competence.id}}">
<div class="level1_title_box">
<h3 class="h3 titre_competence" ng-hide="editorEnabled">{{$index + 1}} - {{competence.Competence.description}} </h3>
</div>
<p><b>Indicateurs de performances : </b></p>
<!-- Level 2 -->
<div data-ng-repeat="indicateur in competence.Indicateur" class="content level2" id="indicateur_{{indicateur.id}}">
<div class="level2_title_box">
<h4>{{$index + 1}} - {{indicateur.description}}</h4>
</div>
<p><b>Results : </b></p>
<p><a ng-click="listAllRestulatsByIndicateurId(indicateur.id)" href="javascript:void(0);">Click here to show results</a></p>
<!-- Level 3 -->
Level 3 shoudl be displayed there...
<!-- End Level 3 -->
<pre>{{resultatsAttendusCallback}} {{resultatsAttendusCallback.length}}</pre>
</div>
<!-- End Level 2 -->
</div>
<!-- End Level 1-->
</div>
當我點擊listAllRestulatsByIndicateurId(indicateur.id);函數,有一個Ajax請求獲取給定指標的所有結果。
我還沒有弄清楚的一點是我怎麼知道在哪裏輸出這個信息,因爲我可以有很多指標。
我的角度功能
$scope.listAllRestulatsByIndicateurId = function(indicateurID) {
console.log(indicateurID);
var req_resultats_by_indicateur = {
method: 'POST',
url: '../api/resultatAttendus/listByIndicateur',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: {
indicateur_id: indicateurID
}
}
console.log(req_resultats_by_indicateur);
$http(req_resultats_by_indicateur).then(function successCallback(callback) {
if(callback.data.status == 'success') {
$scope.resultatsAttendusCallback = callback.data.data;
console.log(callback);
}
if(callback.data.status == 'error') {
console.log(callback)
}
});
}
注:使用回撥,可能是壞的,我把它命名。它是從我的ajax調用返回的數組。
此行$scope.resultatsAttendusCallback = callback.data.data;
爲我提供了指標ID爲父項的結果數組。
但是當我執行這個函數時,所有的{{resultatsAttendusCallback}}或者結果空間都在寫數組。我只是想讓結果打印在我點擊的指示器ID中。
有什麼辦法歸因任何種類的ID或類名的那些元素,所以我可以知道至極元素上工作,獲得角回調的工作?
調用一個承諾對象'回調'非常混亂。不好的名字選擇。你想用'resultatsAttendusCallback'做什麼?在javascript'callback'中是一個函數的用例術語 – charlietfl