Отправка угловых параметров во внешний файл JS - PullRequest
0 голосов
/ 04 июня 2019

Отправка параметров из AngularJS в файл JS

Я уже несколько дней пытаюсь отправить информацию из Angular во внешний файл JS.Я устал от ng-модели, ng-init, ng-bind и двухсторонних директив

<body lang="en" ng-app="app" ng-model="baseUrl='http://example.com'" >
<body lang="en" ng-app="app" ng-init=="baseUrl='http://example.com'" >

---- javascript

var app = angular.module('app', ['ui.grid','ui.grid.pagination']);
var baseUrl;

и т. Д. И т. Д.

Все, что я видел в угловой директиве, - это ПОЛУЧЕНИЕ данных из переменной сценария java.Мне нужно установить переменную из Angular в файл JS.

Единственный способ, который я нашел, - это использовать:

    <script>
    var global = {
        baseUrl: 'http://example.com'
    };    
    </script>

перед тем, как объявить

<body lang="en" ng-app="app" ng-model="baseUrl='http://example.com'" >

вHTML

Это не вариант для меня.есть ли другой способ обойти это?Любые отзывы приветствуются:)

1 Ответ

0 голосов
/ 04 июня 2019

Вы не должны использовать директивы для изменения глобальных данных - это работа службы или иногда контроллера.Но, если вы хотите игнорировать этот совет, вам нужно будет поместить свою логику в метод директивы на протяжении жизненного цикла.Например, вы можете добавить его в функцию ссылки.Это ужасный хак, но я уже говорил об этом.

var myModule = angular.module(...);

myModule.directive('directiveName', function factory(injectables) {
  var directiveDefinitionObject = {
    link: function postLink(scope, iElement, iAttrs) { 
       window.myGlobalVariable = 'Living dangerously';
    }
  };
  return directiveDefinitionObject;
});
...