Так я 2 маршрута установить:UI-маршрутизатор проблема с stateParams и маршрутизации
$stateProvider.state('accounts', {
abstract: 'true',
url: "/accounts",
template: '<div ui-view></div>'
}).state('accounts.view', {
url: "/:accountNumber",
views: {
'@': {
templateUrl: 'tpl/account/index.html',
controller: 'AccountController',
controllerAs: 'controller'
}
},
resolve: {
today: ['today', function (today) {
// Return todays date
return today();
}],
tomorrow: ['tomorrow', function (tomorrow) {
// Return tomorrows date
return tomorrow();
}],
lastMonth: ['lastMonth', function (lastMonth) {
// Return lastMonths date
return lastMonth();
}],
account: ['$stateParams', 'AccountService', function ($stateParams, accountService) {
console.log('hi');
return accountService.get($stateParams.accountNumber);
}]
},
data: {
requireLogin: true,
pageTitle: 'Account details'
}
}).state('accounts.create', {
url: '/create',
views: {
'@': {
templateUrl: 'tpl/account/save.html',
controller: 'AccountSaveController',
controllerAs: 'controller'
}
},
resolve: {
account: function() {
return {};
}
},
data: {
requireLogin: true,
pageTitle: 'Create account'
}
}).state('accounts.view.edit', {
url: '/edit',
views: {
'@': {
templateUrl: 'tpl/account/save.html',
controller: 'AccountSaveController',
controllerAs: 'controller'
}
},
data: {
requireLogin: true,
pageTitle: 'Edit account'
}
})
Если я нажимаю кнопку, украшенную ui-sref='accounts.create'
будет ориентироваться на правильный взгляд, но он пытается сделать решимость учетная запись. Вид. Кажется, что : accountNumber смешивается с /create. Если я обновляю свою страницу, она не загружает представление и все еще пытается разрешить учетную запись.
Я пробовал несколько способов решить эту проблему. Я хотел бы иметь URLs, как это:
счета /: ACCOUNTNUMBER - для просмотра учетной записи
счетов/создание - для создания учетной записи и
счета /: ACCOUNTNUMBER/Редактировать - Для редактирования счетки
Возможно ли установить маршруты?
Не уверен, что у вас не может быть ** учетных записей /: accountNumber ** и ** accounts/create **. Как ссылаются на https://github.com/angular-ui/ui-router/wiki/URL-routing#user-content-url-parameters *** Имена параметров могут содержать только слова (латинские буквы, цифры и underscore) и должен быть уникальным в шаблоне (как по пути, так и по параметрам поиска). *** – Korte
Возможно, вы можете изменить маршрут редактирования, чтобы быть 'account/edit /: accountNumber', чтобы избежать путаницы. –