Когда я использую angularJS ng-repeat, он не показывает, что я добавляю в javascript

В HTML я хочу отображать несколько строк элементов (временная шкала задач). В каждой строке gantt-items, gantt-days используется для построения 365 маленьких ящиков, которые представлены 365 дней в году. И каждая строка должна отображать синий блок, что означает назначенный период этой задачи. {{timeline (item.data.sDate, item.data.eDate)}}, каждая строка содержит только один синий блок.

HTML

    {{timeline(item.data.sDate,item.data.eDate)}}

JS

 angular.module('myApp', ['ngResource']); function MainCtrl($scope,$resource){ $(document).ready(function(){ ... for(var i = 1; i < 366; i++){ $(".gantt-item ul.gantt-days").append('
  • ' + year + "-" + d.getMonth() + "-" + d.getDate() + '
  • '); d = new Date(d.getTime() + (24 * 60 * 60 * 1000)); } ...}); $scope.timeline = function GetLength(startDate, endDate){ var firstDay = new Date(new Date().getFullYear(), 0, 1); var st1 = startDate.split("/"); var dt1 = new Date(st1[2], st1[1] - 1, st1[0]); var st2 = endDate.split("/"); var dt2 = new Date(st2[2], st2[1] - 1, st2[0]); var startPoint = ((dt1.getTime() - firstDay.getTime())/1000/60/60/24)*25; var length = (1+(dt2.getTime() - dt1.getTime())/1000/60/60/24)*25; $(".gantt-item ul.gantt-days").append('Duration'); };

    Когда я использую ng-repeat, $ (“. Gantt-item ul.gantt-days”). Append не работает. И временная шкала (item.data.sDate, item.data.eDate) повторяется n раз в каждой строке, что предполагает показать только один элемент для каждого из n строк.

    Это происходит потому, что элементы в директиве ng-repeat появляются после компиляции DOM.
    Попробуйте использовать $watch :

     $scope.$watch('items.entities', function(){ for(var i = 1; i < 366; i++){ $(".gantt-item ul.gantt-days").append('
  • ' + year + "-" + d.getMonth() + "-" + d.getDate() + '
  • '); d = new Date(d.getTime() + (24 * 60 * 60 * 1000)); } });