2016-01-15 3 views
0

Моя текущая структура проекта этоangularjs директива путь шаблон не получает загружены

app/ 
    app1/ 
     login/ 
      app1.login.partials.html 
     . 
     . 
     index.html 
    app2/ 
    shared/ 
     login/ 
      login.directive.js 
      login.partials.html 

Код для login.directive.js является

angular.module('shared').directive('loginComponent', [ function() { 
    return { 
     restrict: 'E', 
     templateUrl: 'login.partials.html', 
     scope: { 
      loginType: '@type' 
     }, 
     controller: function ($scope) { 
     } 
    }; 
}]); 

Код для app1.login.paritals.html является простой

<login-component type="type1"></login-component> 

При запуске приложения 1 он отказывается загружать login.partials.html из-за его пути. Шаблон загружается, только если я укажу путь как '../shared/login/login.html'. Это связано с размещением index.html? Указание пути к шаблону, как указано выше, убьет повторное использование директивы, так как должны соблюдаться жесткие соглашения об именах.

+0

попробовать "приложение/общий/логин/login.partials.html. – shammelburg

+0

Он работает только в том случае, если index.html находится на том же уровне, что и в папке приложения. В этом случае путь будет разрешен следующим образом: localhost: 63342/angular-app/app/app1/app/shared/login/login.partials.html 404 (не найдено) –

ответ

0

index.html должен располагаться в корне проекта.

app/ 
    index.html 
    app1/ 
     login/ 
      app1.login.partials.html 
     . 
     .   
    app2/ 
    shared/ 
     login/ 
      login.directive.js 
      login.partials.html 

И тогда путь будет: 'app2/общий/Войти/login.partials.html'

+0

Идея каждого приложения, имеющего собственный index.html потому что не все приложения используют все общие компоненты. –

+1

@BharathBhandarkar ах ок! то вы можете группировать директивы по модулям и вводить их в каждое приложение, как внешнюю библиотеку. – zamarrowski

+0

Это будет один из возможных решений, я думаю, –

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