当父ng-repeat是另一个对象时访问祖父母ng-repeat对象

时间:2016-09-22 16:41:34

标签: javascript angularjs

我想以角度访问ng-repeat项目的祖父对象。

我正在努力实现这一目标。

从下面我可以看到,我想显示父对象的文本。

这是一个淡化的版本,我正在寻找一种让它像上面的例子一样工作的方法或者为什么它不起作用的原因。

这是DOM。

<div ng-app ng-controller="MyCtrl">
 <!-- this is the one i cannot get working -->
  <div>
    <div class="copyData" ng-repeat="copy in copyDatabase">
    <div ng-repeat="header in masterHeaders">
      <div ng-repeat="test in copy.Translations">
        set 1: {{test.LanguageAbreviation}}
      </div>
  </div>

  <div>
  <!-- this one does work but i need the item from the masterHeaders -->
    <div class="copyData" ng-repeat="copy in copyDatabase">
    <!-- <div ng-repeat="header in masterHeaders"> -->
      <div ng-repeat="test in copy.Translations">
        set 2 : {{test.LanguageAbreviation}}
      </div>
      <!--</div>-->
    </div>
  </div>

这是JSON对象

   function MyCtrl($scope) {
  $scope.copyDatabase = {
    "data": {
      "Language": "English",
      "Translations": [{
        "LanguageID": 308,
        "LanguageName": "Arabic - Libya",
        "LanguageAbreviation": "ar-LY",
        "AvailableLanguages": [{
          "ID": 308,
          "Name": "Arabic - Libya"
        }]
      }, {
        "LanguageID": 307,
        "LanguageName": "Arabic - Egypt",
        "LanguageAbreviation": "ar-EG",
        "AvailableLanguages": [{
          "ID": 307,
          "Name": "Arabic - Egypt"
        }]
      }]
    }
  }
}

我也为你们制作了一个JS小提琴。

http://jsfiddle.net/u7hk0qvj/5/

2 个答案:

答案 0 :(得分:0)

看到你的jsfiddle,你有一个基本错误,Angular没有找到你的MyCtrl。您需要声明为角度组件。

您正在创建一个全局函数MyCtrl,但这不在角度上下文中,例如:

var myApp = angular.module('myApp',[]);

myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
}]);

您可以看到更多信息here

答案 1 :(得分:0)

需要拥有:

$scope.masterHeaders = {
  "home": "home",
  "contact": "contact"
}

对象也在控件中,如果angular找不到对象,它将不会加载ng-repeat中的任何DOM元素。

工作小提琴

http://jsfiddle.net/u7hk0qvj/8/