2016-10-22 2 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

Что такое метод getByAndswerId? Если это 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 в контроллере вы можете получить доступ к этому объекту

The 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..but, у меня возникли проблемы с переменной 'AnswerScheme' - он не возвращает значение – Nere

+0

, вам нужно использовать $ scope – Sajeetharan

+0

, почему downvote здесь? – Sajeetharan

Смежные вопросы