0

配列の範囲 [ID] を反復処理するために、ディレクティブ 'slider' の親の ID を使用しようとしていますが、その ID はディレクティブの前にレンダリングされます。

これらは両親です:

     <divtest id="1" class="divtest hidden"></divtest>
     <divtest id="2" class="divtest"></divtest>
     <divtest id="3" class="divtest"></divtest>
     <divtest id="4" class="divtest"></divtest>
     <divtest id="5" class="divtest"></divtest>
     <divtest id="6" class="divtest"></divtest>
     <divtest id="7" class="divtest"></divtest>
     <divtest id="8" class="divtest"></divtest>
     <divtest id="9" class="divtest"></divtest>
     <divtest id="10" class="divtest"></divtest>
     <divtest id="11" class="divtest"></divtest>
     <divtest id="12" class="divtest hidden"></divtest>

 </ul>

divtest のテンプレートは

     <li><div><slider></slider></div></li>

スライダーのテンプレートは

     <li class="slider-list" ng-repeat="character in range">{{character}}</li>

これがスライダーディレクティブのコードです

'use strict';

angular.module('keyboardPrototypeApp')
 .directive('slider', function () {
   return {
     templateUrl: '../../views/slider.html',
     replace: false,
    restrict: 'E',
    controller: function($scope){

  },
  link: function preLink(scope, element, attrs) {

      if(element.parents('li.divtest')[0]){

          var index = parseInt((element.parents('li.divtest')[0].id));

          var ranges = {2:[0,1,2,3,4,5,6,7,8,9 ],
              3:[10,11,12,13,14,15,16,17,18,19 ],
              4:[20,21,22,23,24,25,26,27,28,29 ],
              5:[30,3,32,33,34,35,36,37,38,39 ],
              6:[40,41,42,43,44,45,46,47,48,49 ],
              7:[50,51,52,53,54,55,56,57,58,59 ],
              8:[60,61,62,63,64,65,66,67,68,69 ],
              9:[70,71,72,73,74,75,76,77,78,79 ],
              10:[80,81,82,83,84,85,86,87,88,89 ],
              11:[90,91,92,93,94,95,96,97,98,99 ]
          };
          scope.range = ranges[index];
      }
  }
 };
});

そのスライダー ディレクティブで親の ID にアクセスして、それを範囲配列のインデックスとして使用するにはどうすればよいですか?

4

0 に答える 0