#javascript #angularjs #variables #scope
#javascript #angularjs #переменные #область видимости
Вопрос:
Я присваиваю классу переменную Angular и пытаюсь работать с ее фактическим значением в Javascript, но, похоже, я не могу правильно отобразить его и получить вместо него формат Angular {{}} . Здесь, в этой ссылке jsFiddle, я пытаюсь отобразить ее следующим образом:
<script> var test = angular.element(document.getElementById("test"))[0];
alert(test.className); </script>
Хотя в консоли.регистрируйте, что значение класса отображается правильно, если я попытаюсь работать с ним в JS, я, кажется, получаю неразрешенный угловой формат вместо значения «en», как определено ниже:
function LoginController($scope) {
$scope.site = {
language: "en"
};
$scope.display = function (text) {
alert(text);
};
}
Я видел, что в большинстве вопросов, касающихся передачи угловых переменных в JS, упоминается атрибут ng-click, но в моем случае это кажется неуместным.
Следовательно, я был бы признателен за любую информацию об этом. Заранее благодарю.
Комментарии:
1. почему вы пытаетесь сделать это таким образом? установлены угловые двухсторонние привязки, так что вам не нужно рыться в документе, чтобы найти значения. Похоже, вы пытаетесь избежать использования angular здесь, что не имеет смысла.
2. и для записи, это именно правильное поведение для написанного кода. Выполняется
<script>
при загрузке страницы, до того, как angular выполнит какой-либо синтаксический анализ DOM. «Передача переменных Angular в JS» даже не имеет никакого смысла, поскольку Angular — это фреймворк, написанный на JS, это не конкурирующий язык.3. Спасибо за ваш быстрый ответ. Ну, это всего лишь упрощенный сценарий, реальная проблема немного сложнее. Главное что у меня есть встроенная библиотека JS, которая принимает в качестве параметра язык (например <script data-languge=»en» />) and returns a DOM object based on it. К сожалению, этот языковой параметр определен как угловая переменная, поэтому я пытаюсь найти обходной путь.
4. Недостаточно известно об источнике языка, если это не
en
5. на самом деле это не то, для чего вы можете использовать angular; как я уже говорил ранее, эти
<script>
теги будут выполняться до того, как angular получит возможность начальной загрузки. Если использование angular является единственным способом определения этого свойства, вам придется встроить загрузку скрипта в директиву, которая запускается после начальной загрузки angular.