Angularjs Как переменная в app.run () может получить доступ из app.directive ()?

Библиотека Apache Commons Codec имеет класс Hex для выполнения только этого типа работы.

import org.apache.commons.codec.binary.Hex;

String foo = "I am a string";
byte[] bytes = foo.getBytes();
System.out.println( Hex.encodeHexString( bytes ) );

1
задан poirot 16 January 2019 в 14:10
поделиться

2 ответа

требуют $ rootScope в функции .run (), помещают вашу переменную в $ rootScope и в директивах доступ к $ rootScope.yourVar;

Например

app.run(function($rootScope) {
  $rootScope.getLifeSpan = function(LifeSpan){
    var number = eval(LifeSpan)
    return Math.abs(number);
  };
});

В ваших директивах используйте $rootScope.getLifeSpan(whatever)

0
ответ дан Pierre Emmanuel Lallemant 16 January 2019 в 14:10
поделиться

Насколько я знаю, невозможно получить доступ к вашей функции таким образом. Но вы можете создать сервис и получить доступ к своей функции из ваших контроллеров / директив / компонентов и т. Д.

function lifeSpanService() {
   let service = {};
   service.getLifeSpan = (LifeSpan) => {
      var number = eval(LifeSpan)
      return Math.abs(number);
   }

   return service;
}
angular.module('myApp')
    .service('lifeSpanService', lifeSpanService);

Затем вы можете использовать внедрение зависимостей для доступа к этому сервису из вашей директивы

angular.module('myApp')
    .directive('lifeSpan', ['$rootScope', 'lifeSpanService', ($rootScope, lifeSpanService) => {
        return {
            link : (scope, element, attrs) => {
                let value = 1;
                let lifespan = lifeSpanService.getLifeSpan(1);
            }        
    }]);
0
ответ дан icydemon 16 January 2019 в 14:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: