Передать значение области видимости Angular в переменную JavaScript

Я проверил существующие похожие вопросы в SO, но я думаю, что это немного другое. Я знаю, что нам не нужно использовать JavaScript вместе с Angular. Но из-за некоторых зависимостей я им пользуюсь.

var ProfileApp = angular.module('ProfileApp', []);
     ProfileApp.controller('getprofile', function($scope,$http,$location){
   $scope.searchok = 1; 

   $scope.tn_id = '5';
-- Some Angular Codes are here ---

Я хочу поместить значение $ scope.tn_id в переменную JavaScript. Я пытался это понравиться.

<script type = "text/javascript">
      var tn_id_from_angular;

</script>

Определил переменную до кода Angular. Добавлен код ниже внутри кода Angular, подобного этому.

   tn_id_from_angular = $scope.tn_id;
alert (tn_id_from_angular);

Когда я запускаю код, я получаю окно предупреждения, но оно не показывает значение и выдает ошибку undefined.

Редактировать

Проще говоря, я хочу присвоить значение $ scope.tn_id переменной Javascript tn_id_from_angular.

То, что показано, должно работать технически нормально. Похоже, что $scope.tn_id не определен, когда вы пробуете это назначение и предупреждение. Показать полный контекст кода, в котором вы вызываете предупреждение. Также нужно понимать, что угловой является javascript

charlietfl 06.05.2018 19:10

Ты прав. Я вызывал его при загрузке файла, и по какой-то причине он до этого времени не загружался. Теперь я переместил его на кнопку, и все заработало. Я был очень глуп.

Rocx 06.05.2018 19:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
62
1

Ответы 1

вы можете назначить глобальную переменную объекту window, а затем получить ее

предупреждение: это хакерская территория .. мы не делаем здесь хороший код, но он может работать

попробуйте это в своем угловом коде:

// ...

var ProfileApp = angular.module('ProfileApp', []);
ProfileApp.controller('getprofile', function($scope,$http,$location){
  $scope.searchok = 1;
  $scope.tn_id = '5';
  window.hacks = {tn_id_from_angular: $scope.tn_id};

// ...

а затем это в вашем скрипте:

const {tn_id_from_angular} = window.hacks;
alert (tn_id_from_angular);

пока скрипт выполняет после, код angular выполняет - он должен работать

если нет, то вам нужно придумать какой-то «обратный вызов angular ready»

Вы действительно просто делаете то, что OP делал более подробным

charlietfl 06.05.2018 20:00

подробный - прочтите - явный. всегда хорошо, когда вы устанавливаете загадочные хаки

ChaseMoskal 06.05.2018 21:20

Другие вопросы по теме