2015-10-07 2 views
0

Я рефакторинга все мой код для реализации директив верхнего уровня, как описано в этой статье Scaling Angular Apps и я не знаю, как получить доступ к моим разрешенные значения:Доступ Решенный параметры из состояния без контроллера внутри директивы

$stateProvider 
      .state('login', { 
       url  : '/login', 
       template : '<sr-login-view></sr-login-view>' 
      }) 
      .state('main', { 
       url  : '/main', 
       template : '<sr-main-view></sr-main-view>', 
       resolve : { 
        directiveConfig : function (Directives) { 
         return Directives.getConfig('mainScreen'); 
        } 
       } 
      }); 

Директива:

angular.module('ElectronClient') 
    .directive('srMainView', function (directiveConfig //doesn't work) { 
     return { 
      restrict : 'E', 
      require  : 'srMainScreen', 
      scope  : {}, 
      templateUrl : 'source/app/directives/main/main_view.html', 
      controller : function ($scope, directiveConfig //doesn't work) { 

       //code 

      }, 
      link : { 
       post : function (scope, element, attributes, mainViewController) { 

       } 
      } 
     } 
    }); 

есть ли обходной путь для этого? Весь смысл в «Top Level» директивы, чтобы не определить контроллер в состоянии, но это, кажется, параметр решительность передается только к контроллеру прилагается к этому состоянию

+0

добавить контроллер в состояние 'main', а затем передать директиву' directiveConfig' для директивы, выделенной области. –

+0

Я пытался найти любой другой способ –

+0

Но я думаю, мне придётся прибегнуть к этому ...: p –

ответ

1

Весь смысл в «Top Level» Директивы не должны определять Контроллер в состоянии

Да, это точка, но почему? Так что вы можете использовать это:

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

Теперь с помощью resolve победит эту цель, так как в зависимости от того, как вы называете директиву, некоторые из них будут иметь directiveConfig доступные для инъекций и некоторые из них не будут. Это означает, что у вас будет использовать различные шаблоны в зависимости от того, как используется директива.

Чтобы быть в курсе того, что предлагает эта статья, я думаю, что лучше не вмешиваться в решение вопросов, связанных с вашими маршрутами, и разрешать их в контроллере.

Смежные вопросы