У меня есть приложение, в котором модуль просматривает URL-адрес. Если URL-адрес имеет что-либо из раздела «Документ», тогда одно состояние устанавливается с использованием информации, выходящей за этот URL. Если URL-адрес не имеет ничего выше этой точки, устанавливается другое состояние. Таким образом, эти два URL-адреса являются ...Подмодули URL-адреса Angularjs UI и URL-адреса
www.xyz.com/Document/
и
www.xyz.com/Document/someData
я в настоящее время решения проблемы, как показано ниже , Это работает, но мне действительно нужно, чтобы два состояния были в одном модуле, и я не могу понять, как это сделать.
Итак, вместо второго состояния, применяемого к app.documentEmpty, я хочу, чтобы оно применимо к app.document.empty.
angular
.module('app.document', [
'app.document.worksheet',
'app.document.tableOfContents',
'app.document.properties',
'app.document.bibliography',
'app.document.inputs',
'app.document.datasets',
'app.document.fileAsFunction',
'app.document.importedFunctions',
'app.document.directory'
])
.config(config);
/** @ngInject */
function config($stateProvider, $translatePartialLoaderProvider, msApiProvider, msNavigationServiceProvider)
{
$stateProvider.state('app.document', {
url : '/Document/{path:.*}/',
views : {
'[email protected]': {
templateUrl: 'app/main/apps/document/worksheet/worksheet.html',
controller : 'DocumentController as vm'
}
},
resolve : {
Documents: function (msApi)
{
return msApi.resolve('[email protected]');
},
emptyDocuments: function (msApi)
{
return msApi.resolve('[email protected]');
}
},
bodyClass: 'worksheet'
}).state('app.documentEmpty', {
url : '/Document/',
views : {
'[email protected]': {
templateUrl: 'app/main/apps/document/documentEmpty.html',
controller : 'DocumentController as vm'
}
},
resolve : {
Documents: function (msApi)
{
return msApi.resolve('[email protected]');
},
emptyDocuments: function (msApi)
{
return msApi.resolve('[email protected]');
}
},
bodyClass: 'document'
});
Проблема заключается в том, что всякий раз, когда я удаляю второе состояние сверху и заменить его чем-то вроде того, что это ниже в каталоге субмодуля, то URL не распознается и правильная страница не загружается. Существует еще несколько подмодулей, которые не зависят от URL-адреса, и они работают нормально.
$stateProvider.state('app.document.directory', {
url : '/Document/',
views : {
'[email protected]': {
templateUrl: 'app/main/apps/document/directory/directory.html',
controller : 'DocumentController as vm'
}
},
bodyClass: 'directory'
});
Невозможно ли перенаправить к подмодулям по URL-адресам?
они должны.не уверен, что пошло не так, но вы можете определенно определить свои состояния в подмодулях. Единственное, что нужно сделать, это убедиться, что ваш государственный иерархический уровень четко определен, а ваш родитель не нарушен. Любая ошибка в журналах? – CozyAzure
Я попытался определить состояние в подмодуле и в родительском. Ошибок нет, он просто не работает, когда подмодуль определяется как URL-адрес с ничем после него. –
Думаю, мне удалось выяснить вашу проблему уже. Позвольте мне опубликовать ответ ниже – CozyAzure