У меня есть устаревшая страница, которая асинхронно заполняется JQuery (устаревшим кодом) после загрузки страницы в первый раз. На этой странице я пытаюсь получить директиву angularjs. Единственная проблема заключается в том, что я пытаюсь посмотреть значение #myId, поэтому я могу использовать его для своей директивы, но значение изменяется и запускает наблюдателя один раз, и оно пустое - это не повторится, когда на самом деле оно получает числовое значение из jquery , Что я делаю не так? Я пробовал с ng-value, ng-model, но все же я получаю undefined для этих попыток. Также не представляется возможным ввести маршрутизации и т.д., чтобы получить идентификатор оттуда .. СпасибоУнаследованная интеграция и контент AngularJS, содержащий асинхронно изменяющийся идентификатор, не вызывает наблюдателя
Вот моя директива:
angular.module("myModule")
.directive("myDir", function() {
return {
restrict: 'A',
templateUrl: "template.html",
scope : {},
link: function (scope, element, attrs, ctrl) {
scope.$watch(function() { return $("#myId").val() }, function (newVal) { ctrl.myId= newVal});
},
controllerAs: 'myCtrl'
};
});
+1 Хорошо, но если я, скажем, 20 директив, Я скоро - я не хочу, чтобы каждый из них был уведомлен о различных изменениях идентификаторов. Есть ли лучший способ? –
Не то, чтобы я мог думать. Как правило, вы хотите пойти с Угловым, чтобы он не строился так, чтобы это можно было использовать. У кого-то еще может быть лучшее решение, но именно так я обрабатываю случайные события jQuery, которые нельзя перенести на угловые в проектах. –
интересная часть, если я нажимаю кнопку, а затем имею функцию, которая просто получает идентификатор на основе $ («myId»), он отлично работает. Было бы неплохо, если бы функция наблюдателя вызывалась много раз, пока она не имела значение –