0

Вот пример того, что я пытался реализовать

есть такая фабрика:

export default app.factory('mainFactory', $http => {
      return {
        getConfig: (cr) => $http({ method: 'GET', url: '/main-conf' }).then(res => cr = res.data, error => console.log(error))
      }
});

Далее контроллер в котором я хочу эти данные использовать

import app from '../../main-module/index.js';

export default app.controller('mainCtrl', [ '$scope', '$http', 'mainFactory', '$window', ($scope, $http, mainFactory, $window) => {

$scope.reloadRoute = () => $window.location.reload();
$scope.mainFactory = mainFactory;

console.log('$scope.mainFactory', $scope.mainFactory.getConfig($scope.mainConf2));

} ]);

В итоге получаю вот такое

введите сюда описание изображения

а если реализовать все в котроллере то все ок

пример

   import app from '../../main-module/index.js'; 
    export default app.controller('mainCtrl', [
      '$scope',
      '$http',
      'mainFactory',
      '$window',
      ($scope, $http, mainFactory, $window) => {
        $scope.reloadRoute = () => $window.location.reload();
        $scope.mainConf;
        $http({ method: 'GET', url: '/main-conf' }).then(res => $scope.mainConf = res.data, error => console.log(error));
    console.log('$scope.mainConf', $scope.mainConf);
  }

]);

результат

введите сюда описание изображения

Что я делаю не так? Как мне в первом примере получить результат второго примера? Благодарю заранее

Air
  • 14,505
  • в контроллере ты присваиваешь в поле $scope, а в фабрике просто перезаписываешь значение аргумента. – Grundy Feb 07 '23 at 08:45
  • @Grundy, благодарю... Уже сам сообразил... Хотя не скрою, принцип проблемы не понял... В том смысле, что почему так??? У меня вопрос не полноценный. Когда я ссылаюсь на объект $$state.value у меня почему-то value исчезал или перезаписывался и я получал undefined... Ну да ладно, разберусь ))) Еще раз спасибо, что отозвался... – Air Feb 07 '23 at 09:42

0 Answers0