Я пытаюсь использовать ng-repeat в таблице и сортировать формы структуры дерева папок. Таким образом, когда я нажимаю определенную строку и в зависимости от конкретного значения, я обновляю значение после вызова функции через «onclick» (ng-click, похоже, не работает), список получает обновление в JavaScript, но не отражается на HTML. Кроме того, строка не отображается в HTML. Некоторая часть кода ниже:Обновление динамического списка ng-repeat
<tr id="parents" ng-repeat="dir in cachedDirectoryInfo.filesInPath track by dir.name">
<td>{{dir.name}}</td>
<td>{{dir.permission}}</td>
<td>{{dir.modificationTime | date:'yyyy-MM-dd HH:mm'}}</td>
<td>{{dir.ownerName}}</td>
<td>{{dir.groupName}}</td>
</tr>
<tr ng-repeat="child in directoryInfo.filesInPath track by child.name">
<td>
<a id="mylink" datamylink="{{child.name}}" onclick="var myscope=angular.element($('#importCtrlEl')).scope(); myscope.hello(myscope.selectedPath, this)">{{child.name}}
</a>
</td>
<td>{{child.permission}}</td>
<td>{{child.modificationTime | date:'yyyy-MM-dd HH:mm'}}</td>
<td>{{child.ownerName}}</td>
<td>{{child.groupName}}</td>
</tr>
В то время как в JavaScript
$scope.hello = function (path, event) {
Inside promise{
$scope.cachedDirectoryInfo = $scope.directoryInfo;
$scope.directoryInfo = hdfsResp.directoryInfo;
}
}
Я прочитал некоторые решения, которые здесь говорит использовать $scope.$apply
, который не работает для меня. Поскольку это дает мне ошибку «Ошибка: $ digest уже выполняется», и если я делаю $scope.$$phase || $scope.$apply
, он не будет выполнен. Как вы можете видеть, я также попробовал track by
в ng-repeat без результатов.
Есть ли способ сделать это через jQuery? Моим вариантом было бы заменить и скомпилировать <tr>
еще раз.
Любой совет или работа вокруг?
PS: Это все внутри шагов jQuery, которые могут быть одной из причин.