2016-04-05 2 views
0

Я пытаюсь модулировать свои функции компонентами & задавался вопросом, так или иначе, чтобы включить путь контроллера только в соответствующие директивы?Angularjs, создающий автономные пользовательские директивы

я пытаюсь иметь папку со структурой, как это:

-app.js 
-directives  
--slider 
---slider.js 
---slider.html 
---slider-carousel-controller.js 
---slider-single-controller.js 

app.js

//require components 
require('./directives/banner-slider/banner-slider.js'); 

Мой заказ директива

app.directive('bannerSlider', [function() { 
    return { 
     restrict: 'E', 
     replace: true, 
     templateUrl: "/directives/banner-slider/banner-slider.html", 
    }; 
}]) 

Как я могу добиться этого?

+0

Вы никогда не ссылаясь на путь контроллера, но путь к шаблону. –

+0

Можете ли вы уточнить часть своего вопроса _ включить путь контроллера только в соответствующие директивы? _ –

+0

я вижу! Я предполагаю, что на самом деле у меня есть мое мышление прямо напротив обращения к шаблону, а не к пути к контроллеру. Thx для этого! – mark5

ответ

1

Сколько относительных путей вы планируете иметь по одной директиве? Обычно директивы используются в качестве повторяемого компонента с повторяющимися свойствами, которые либо унаследованы от родительской области директив, либо являются областью выделения (если вы решили сделать это).

В вашем случае это похоже на то, что у вас может быть директива с несколькими свойствами и в зависимости от этих свойств вы будете делать x, y и z с ними.

IMO Я бы использовал область изоляции и передал ваши свойства с помощью атрибутов директив в качестве моделей.

app.directive('bannerSlider', [function() { 
    return { 
     scope:{ 
      property1: "=", 
      property2: "=" 
     }, 
     restrict: 'E', 
     replace: true, 
     templateUrl: "/directives/banner-slider/banner-slider.html", 
    }; 
}]) 

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

И в вашем HTML

<banner-slider property1="value" property2="value"></banner-slider> 

Где значение любые данные, это в рамках текущего контроллера он сидит.

+0

да для этого случая у меня есть указатель слайдера, который я буду использовать его несколько раз с разными настройками и значением. изолировать область звуков, как много в этой ситуации, я проверю этот метод и посмотрю. Итак, в конце концов, все значения будут помещены в файл slider.js? или в чем-то вроде main-slider-controller.js? – mark5

+0

Ни одно из ваших значений не хранится в вашем файле директивы (я предполагаю, что это ваш slider.js). Они хранятся в вашем контроллере. – Garuuk

0

Должно быть возможно.

Просто назовите ваш контроллер (не забудьте назвать файл, где ваш контроллер находится в файле index.html или любой другой)

app.directive('bannerSlider', [function() { 
     return { 
      restrict: 'E', 
      replace: true, 
      templateUrl: "/directives/banner-slider/banner-slider.html", 
      controller: 'yourControllerName' 

     }; 
    }]) 
Смежные вопросы