Так у меня есть несколько других состояний, вот так:углового UI-маршрутизатор доля государства
$stateProvider.state('accounts', {
url: "/accounts",
templateUrl: 'tpl/accounts/index.html',
}).state('accounts.view', {
url: "/{accountNumber:[A-Z]{3}[0-9]{3,7}}",
views: {
'@': {
templateUrl: 'tpl/accounts/view.html',
controller: 'AccountController',
controllerAs: 'controller'
}
},
resolve: {
account: ['$stateParams', 'AccountService', function ($stateParams, accountService) {
return accountService.get($stateParams.accountNumber);
}]
}
}).state('accounts.create', {
url: '/create',
views: {
'@': {
templateUrl: 'tpl/accounts/save.html',
controller: 'AccountSaveController',
controllerAs: 'controller'
}
},
params: {
account: null
},
resolve: {
account: ['$stateParams', 'AccountProvider', function ($stateParams, provider) {
return $stateParams.account || provider.newAccount();
}]
}
}).state('accounts.view.edit', {
url: '/edit',
views: {
'@': {
templateUrl: 'tpl/accounts/save.html',
controller: 'AccountSaveController',
controllerAs: 'controller'
}
}
})
и все работает отлично. Теперь мне нужно создать некоторые дочерние состояния для create и Редактировать. Они будут использовать один и тот же вид и контроллеры, но мне было интересно, могу ли я использовать одно и то же состояние. Например, я буду настройке адреса состояния, которое будет выглядеть примерно так:
.state('accounts.view.edit.address', {
url: '/address',
views: {
'@': {
templateUrl: 'tpl/accounts/save/address.html',
controller: 'AccountAddressSaveController',
controllerAs: 'controller'
}
}
})
и обращу другой вверх для создать состояние так:
.state('accounts.create.address', {
url: '/address',
views: {
'@': {
templateUrl: 'tpl/accounts/save/address.html',
controller: 'AccountAddressSaveController',
controllerAs: 'controller'
}
}
})
Это ISN это вопрос для этого для одного ребенка, но есть еще 4 человека, и я просто подумал, что спрошу, есть ли способ разделить государства, например, возможно:
.state(['accounts.create.address','accounts.view.edit.address'], {
url: '/address',
views: {
'@': {
templateUrl: 'tpl/accounts/save/address.html',
controller: 'AccountAddressSaveController',
controllerAs: 'controller'
}
}
})
Я хотел бы сделать неполную копию для каждого из них с помощью 'angular.extend ({}, sharedState)' или 'Object.assign ({}, sharedState)' –