-1
我遇到問題,將我的下拉篩選器($ scope.selectedOperation.OP_NAME)的結果綁定到Web服務,以便在加載頁面時顯示結果。我不斷收到一條錯誤,指出「無法讀取未定義的屬性OP_NAME」。即使我將結果記錄到控制檯時,一切都看起來正確。請幫忙!我如何使用AngularJS綁定和填充頁面加載數據?
var headcountsApp = angular.module('headcountsApp', []);
headcountsApp.controller('headcountsController', ['$scope', '$http',
function($scope, $http) {
$scope.selectOperations = [];;
//Data for drop-down filters
$scope.getOpFilter = function() {
var dtaArray = {};
$http.post("/services/SA.svc/getOpName", dtaArray).then(function onSuccess(response) {
$scope.opFilter = JSON.parse(response.data.getOpNameResult);
angular.forEach($scope.opFilter, function(value, key) {
$scope.selectOperations.push(value);
});
$scope.selectedOperation = $scope.selectOperations[0];
});
};
$scope.corpArray = [];
$scope.getCorp = function() {
var dtaArray = {};
dtaArray.OP_NAME = $scope.selectedOperation.OP_NAME;
var dtaJson = JSON.stringify(dtaArray);
$http.post("/services/SA.svc/getCorpHeadCounts",
dtaArray).then(function onSuccess(response) {
$scope.corporateSummary =
JSON.parse(response.data.getCorpHeadCountsResult);
angular.forEach($scope.corporateSummary, function(value, key) {
$scope.corpArray.push(value);
});
});
};
angular.element(document).ready(function() {
$scope.getOpFilter();
$scope.getCorp();
});
}]);
你需要在那裏有東西... –
東西在哪裏? – user3438030
你在調試過程中通過了你的代碼嗎?如果是的話,我敢打賭你會發現在$ scope.selectedOperation被設置之前調用了$ scope.getCorp()。這是因爲$ scope.getOpFilter()中的promise($ http)在$ scope.getCorp()被調用之前不會被滿足,你需要在這個站點上搜索promise鏈和/或$ q.all()。主題已經在SO上多次報道。 – jbrown