пытаясь использовать переменные в JavaScript вне области видимости функции - PullRequest
0 голосов
/ 03 января 2019

я использую node-red и вставляю некоторые переменные json, я могу видеть их только в области действия функции, как я могу использовать их вне функции.

Я пробовал контроллер angularjs, но он не работал, возможно, я не использовал его правильно

<!DOCTYPE html>

<html>

<body>

  <div>{{msg.payload}}</div>

  <div>{{value}}</div><br>

  <div>{{value1}}</div><br>

  <div>{{value2}}</div><br> // i can see the contents

  <md-button ng-click="send({payload:action()})">

  </md-button>

  <script>
    (function(scope) {

      scope.$watch('msg', function(msg) {

        if (msg.payload.image) {

          scope.value2 = msg.payload.image;

        }
        if (msg.payload.text) {

          scope.value1 = msg.payload.text;

        }

        if (msg.payload.volume) {

          scope.value = msg.payload.volume;

        }

        scope.action = function() {

          return [scope.value, scope.value1, scope.value2];

        }

      });

    })(scope);
  </script>

</body>

</html>

1 Ответ

0 голосов
/ 03 января 2019

Переменные действительны и доступны только в той области, где они были созданы (и в «дочерних областях»).

Если вы хотите иметь некоторую глобальную переменную, вы можете просто создать «глобальную переменную»(просто Google).

Но так как вы используете Angular (хотя старая версия "angularjs", а не новая версия "Angular"), есть лучшие способы.В Angular (новом, не знаю о старом) вы можете создать и использовать то, что называется «сервис».Это своего рода глобально доступный объект, который может содержать много переменных и других вещей, которые могут быть использованы в другом месте кода.

НО: в зависимости от используемого здесь варианта использования вы также можете создавать переменные на внешнем угловомкомпонент и вставьте / передайте их в дочерний компонент.Таким образом, оба могут использовать и получить к нему доступ.Узнайте больше о привязке / двусторонней привязке для этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...