Html:AngularJS нг-клик не работает в дайджесте цикле
<a href id="link "ng-click="print(arg)"> print </a>
Angularjs контроллер:
$scope.return_promise =function(arg){
return $http.post('\path');
)};
$scope.print = function(arg){
url ="other/path/"
$scope.return_promise(arg).then(function(r){
if(r){
$('#link').attr('href', url);
});
};
Проблема: Я проверил с хромированным отладчиком, то HREF на самом деле обновляются, но событие не запускается (т.е. не переходите к URL-адресу). Если я снова нажму на него, это сработает.
Если добавить заявление document.getElementById('#link').click()
в конце if
пункта, он будет запрашивать ошибку «переваривать цикл продолжается»
Как я могу решить эту проблему.
ваш код не «идти» в любом месте, она изменяет только 'href'. во второй раз, когда вы нажимаете его, браузер видит, что 'href' имеет значение и идет туда. Если вы хотите поехать туда, вам нужно будет указать его в своем коде. В качестве побочного примечания вы, вероятно, не должны использовать jQuery для изменения 'href', угловой не всегда способен распознавать изменения внешней структурой, хотя в этом случае это не то, что вызывает проблему. – Claies
Чтобы перейти к URL-адресу лучше попробовать с '$ location', а для доступа к элементам dom лучше попробовать' angular.element() ' – Hosar