如何在angularjs控制器中读取对象?

时间:2016-10-22 13:59:16

标签: javascript 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中的对象?

2 个答案:

答案 0 :(得分:1)

在您的控制器中,您应该使用$scope来访问范围数据, 所以,{{AnswerScheme[0]}}在视图中等于$scope.AnswerScheme[0] n控制器

在您的服务中,您将返回一个对象而不是一个承诺。

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

即使它在视图中以核心方式显示,因为视图中始终会监视范围。

根据我们的讨论,如果您在控制器中添加$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);

});

答案 1 :(得分:0)

你可以这样读,这将包含对象。对象也没有索引。

你必须使用$scope.AnswerScheme

 Console.log($scope.AnswerScheme);

如果它是一个数组,你可以使用$scope.AnswerScheme[0]

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