2014-05-07 139 views
0

試圖獲取json數據。最初創建了一個Ajax請求,它在一個普通的HTML頁面中工作,但不是在我的角度應用程序中,所以我決定嘗試內置的$ http get函數。我沒有得到任何錯誤,但是,我的ajax數據不進來,但在控制檯日誌中顯示GET工作。

我的php顯示一個編碼的json對象數組,當我瀏覽它時顯示正常。

我的控制器看起來像:

apDash.controller('fieldopmgrController', function($scope,$http){ 
     $http.get('protected/getHeadObs.php') 
      .success(function(data, status, headers, config) { 
     $scope.flights = data.flightid; 
      }); 
    }); 

我的看法是這樣的:

<div class="small-5 columns"> 
     <label>Flight ID 
      <select name="fliID" class="radius"> 
      <option ng-repeat="flight in flights">{{flight.flightid}}</option> 
      </select> 
     </label> 
    </div> 

我的JSON的樣子:

圖像更新!

enter image description here

同樣,我完全沒有錯誤在我的控制檯日誌,但還沒有我的觀點是行不通的。一直在用AngularJS玩幾個月,但這是我第一次使用$ http服務。任何幫助讓它出現/建議什麼即時做錯了會很好。提前致謝。

回答

0

我能夠通過在json中編碼我的行來解決這個問題。正如上面在許多評論中所述,我的json格式不正確。在我的服務中,我進入並分別對每一行進行編碼,並像魅力一樣工作。

1

我打算繼續,猜測您的ajax響應沒有位於flghttid屬性上的flightid屬性。你有沒有試過{{ flight }}?此外,爲了使NG重複的工作,你需要對象的數組分配給$scope.flights

+0

剛剛更新我的問題與我的JSON的屏幕截圖。我嘗試過飛行,但仍然沒有在我的元素中返回我。 – MizAkita

+0

它是否有可能用於其他飛行物體的陣列?它必須位於一個數組中才能進行ng-repeat迭代。它看起來像是它是數組中的第一個項目,您可以將數組「flights」分配爲'''$ scope.flights = flights;'''並在選項'''flight'中訪問航班['FieldOpsData' ] ['flightid']''' – adrichman

+0

它是一個帶有自動生成的id的記錄集。一行只能分配一個航班編號。您能否詳細說明我的元素中'flight ['FieldOpsData'] ['flightid']'是什麼意思? – MizAkita

1

這很難說,不看JSON輸出,但似乎這條線是不正確的:

$scope.flights = data.flightid; 

你是不是要說?

$scope.flights = data; 
+0

我在幾分鐘前用我的json更新了我的問題。 @AlekseyDmitriyev – MizAkita

+0

數據將我返回一堆角度錯誤... $ scope。航班=數據; – MizAkita

+0

錯誤說:錯誤:[ngRepeat:dupes]不允許在中繼器中複製。使用'track by'表達式來指定唯一鍵。直放站:飛行中的航班,重複鍵:字符串: – MizAkita