2016-10-22 23 views
0

當我讀取視圖中的對象時,我沒有任何問題。例如我的代碼是:如何在angularjs控制器中讀取對象?

angular.module('myApp',[]) 
.controller('myCtrl',function($scope){ 
     var AnswerScheme = $scope.AnswerScheme = tbl_qst_master_answer.getByAnswerId(AnswerIdSelectedByStudent); 
}); 

筆者認爲:

{{AnswerScheme[0]}} // Then the output will be: {"myTestData":123} 

不過,我的問題,如果我想在控制器讀取

AnswerScheme[0] // Then no results 

如何讀取對象myCtrl

+0

$ scope.AnswerScheme [0] – Sravan

+0

什麼是getByAnswerId方法?如果它是一個http調用,你應該在獲得該值之前解決promisse,這就是爲什麼你沒有結果 – Fals

+0

因此,我需要進行http調用?我剛剛打電話給服務 – Nere

回答

1

在你的控制器,你應該使用$scope訪問範圍的數據, 所以, {{AnswerScheme[0]}}在視圖中等於$scope.AnswerScheme[0] n控制器

在您的服務中如果你正在返回一個對象而不是承諾。

If you return a promise, you can call a callback function.

儘管它得到的觀點corectly顯示,因爲範圍在視圖中始終關注。

根據我們的討論,如果添加$timeout在控制器,你可以訪問該對象

timeout負載範圍內一段時間後,到那個時候範圍將得到解決。

angular.module('myApp',[]) 
.controller('myCtrl',function($scope,$timeout){ 
     var AnswerScheme = $scope.AnswerScheme = tbl_qst_master_answer.getByAnswerId(AnswerIdSelectedByStudent); 

     $timeout(function() { 
      console.log($scope.AnswerScheme) 
     },900); 

}); 
+0

與我發佈的答案有什麼不同? – Sajeetharan

+0

讓我先試試...我認爲我以前做過,但仍然不起作用 – Nere

+0

沒什麼大不了的,我只是解釋了什麼是在視圖中,什麼將在控制器中,只是刪除了'console.log',在你的答案中沒有錯。 我剛將它添加到控制器中。 – Sravan

0

你可以這樣讀,這將包含對象。另外對象沒有索引。

你必須只使用$scope.AnswerScheme

Console.log($scope.AnswerScheme); 

如果一個數組,你可以只使用$scope.AnswerScheme[0]

Console.log($scope.AnswerScheme[0]); 
+0

我知道關於console.log ..但我遇到了變量'AnswerScheme'的問題 - 它不會返回任何值 – Nere

+0

您必須使用$ scope – Sajeetharan

+0

爲什麼在這裏downvote? – Sajeetharan

相關問題