将Array添加到另一个Array后无法访问字段

时间:2017-01-09 18:41:22

标签: javascript angularjs arrays

我有一个部分数组,当用户单击复选框时,会将一个部分推入数组。它的定义如下:

(head) A ==> B ==> C ==> D ... 
              \                 
               \--> E --> F ...

一旦我拥有了所有选定的部分,我就会使用服务获取每个选定部分的问题列表,如下所示:

$scope.print = {
  sections:[] 
};

然后我将返回的问题分配给原始数组,如下所示:

var questions = [];
myService.getQuestions(id)
  .success(function (data) {
    questions = data;
  });

分配“似乎”有效,但我无法通过字段名称访问问题数组中的特定字段。

在我的HTML页面上,我有这个:

angular.forEach($scope.print.sections,
    function (value, key) {
        if (value.QuestionSectionID === id) {
            $scope.print.sections[key].questions = questions;
        }
    });

当我尝试访问“q.vchQuestionText”字段时,我的HTML是空白的,但是如果我简单地执行以下操作:

<div ng-repeat="ps in print.sections">
    <div>
        <h4>{{ps.vchSectionName}}</h4>
    </div>
    <div ng-repeat="section in ps.questions">
        <div ng-repeat="q in section">
            {{q.vchQuestionText}}
        </div>
    </div>
</div>

然后我可以看到“q”的每个字段中包含的所有信息。但是我需要通过它的名字访问“q”中的每个字段。我在这里缺少什么?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

好的,我可以在“q”中显示所有数据,但无法指定字段的原因是因为我有一个ng-repeat个指令太多。

我需要的只是以下内容:

<div ng-repeat="ps in print.sections">
<div>
    <h4>{{ps.vchSectionName}}</h4>
</div>
    <div ng-repeat="q in ps.questions">
        {{q.vchQuestionText}}
    </div>
 </div>

希望这会有助于其他人。谢谢大家的帮助。