Лучший способ сделать это сейчас — использовать загрузчик модулей, такой как browserify, webpack или typescript. Есть и множество других. Поскольку требования могут быть сделаны из относительного местоположения файла, а дополнительный бонус в виде возможности импортировать шаблоны с помощью преобразований или загрузчиков, таких как частичное, вам даже не нужно больше использовать URL-адреса шаблонов. Просто вставьте шаблон через require.
Мой старый ответ все еще доступен ниже:
Я написал пост именно на эту тему и рассказал об этом на нашем местном Angular Meetup. Большинство из нас сейчас используют его в производстве.
Это довольно просто, если ваша файловая структура эффективно представлена в ваших модулях. Вот краткий предварительный просмотр решения. Полная ссылка на статью следует.
var module = angular.module('myApp.things', []);
var all = angular.module('myApp.things.all', [
'myApp.things',
'things.someThing',
'things.someOtherThing',
'things.someOtherOtherThing',
]);
module.paths = {
root: '/path/to/this/thing/',
partials: '/path/to/this/thing/partials/',
sub: '/path/to/this/thing/sub/',
};
module.constant('THINGS_ROOT', module.paths.root);
module.constant('THINGS_PARTIALS', module.paths.partials);
module.constant('THINGS_SUB', module.paths.sub);
module.config(function(stateHelperProvider, THINGS_PARTIALS) {
stateHelperProvider.setNestedState({
name: 'things',
url: '/things',
templateUrl: THINGS_PARTIALS + 'things.html',
});
});
И тогда любые подмодули или «относительные» модули выглядят так:
var module = angular.module('things.someThing', ['myApp.things']);
var parent = angular.module('myApp.things');
module.paths = {
root: parent.paths.sub + '/someThing/',
sub: parent.paths.sub + '/someThing/sub/',
partials: parent.paths.sub + '/someThing/module/partials/',
};
module.constant('SOMETHING_ROOT', module.paths.root);
module.constant('SOMETHING_PARTIALS', module.paths.partials);
module.constant('SOMETHING_SUB', module.paths.sub);
module.config(function(stateHelperProvider, SOMETHING_PARTIALS) {
stateHelperProvider.setNestedState({
name: 'things.someThing',
url: "/someThing",
templateUrl: SOMETHING_PARTIALS + 'someThing.html',
});
});
Надеюсь это поможет!
Полная статья: Относительные модули AngularJS
Ваше здоровье!
person
tannerlinsley
schedule
12.11.2014