В Angular.js, если вам нужно выполнить рекурсивный вызов контроллера $mdDialog, вы можете использовать следующие методы:
-
Связь с контроллером. Вы можете установить связь между родительским и дочерним контроллерами с помощью событий или служб. Вызовите событие из дочернего контроллера, чтобы уведомить родительский контроллер о необходимости рекурсивного вызова, и обработайте событие в родительском контроллере, чтобы инициировать рекурсивный вызов.
-
Внедрение службы: создайте службу, которая обрабатывает рекурсивную логику, и внедрите ее как в родительский, так и в дочерний контроллеры. Дочерний контроллер может вызвать метод службы для запуска рекурсивного вызова.
-
Обещания: используйте обещания для обработки рекурсивного вызова. В дочернем контроллере верните обещание, которое будет выполнено после завершения рекурсивного вызова. В родительском контроллере используйте обещание, чтобы инициировать рекурсивный вызов и обработать результат.
-
$broadcast и $on: используйте методы $broadcast и $on, предоставляемые Angular.js, для отправки широковещательного события от дочернего контроллера к родительскому контроллеру, указывая на необходимость рекурсивного вызова. Родительский контроллер может прослушивать это событие, используя $on, и инициировать рекурсивный вызов.