J'ai configuré le routeur ui suivant.Un paramètre de ui-routeur dans le contrôleur et résoudre
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider
.state('global.editor', {
url: '/posts/editor/{id}',
templateUrl: '/htmls/editor.html',
controller: 'EditorCtrl',
resolve: {
post: ['$stateParams', 'codeService', function ($stateParams, codeService) {
return codeService.getPost($stateParams.id)
}]
}
}
.state('global.new', {
url: '/new',
templateUrl: '/htmls/editor.html',
controller: 'EditorCtrl'
})
.state('global.newTRUE', {
url: '/newTRUE',
templateUrl: '/htmls/editor.html',
controller: 'EditorCtrl'
})
.state('global.editor.panels', {
controller: 'PanelsCtrl',
params: { layout: 'horizontal' },
templateUrl: function (params) { return "/htmls/" + params.layout + '.html' }
}
}])
app.controller('EditorCtrl', ['$scope', '$state', function ($scope, $state) {
$scope.layout = "horizontal";
$scope.$watch('layout', function() {
$state.go('global.editor.panels', { layout: $scope.layout });
});
}]);
En conséquence, https://localhost:3000/#/new dans un navigateur conduit à (l'état global.editor
, puis à) l'état global.editor.panels
.
Maintenant, je veux ajouter un paramètre connected
:
- Je ne veux pas qu'il soit indiqué dans l'URL
- https://localhost:3000/#/new dans un navigateur fait
connected
êtrefalse
et https://localhost:3000/#/newTRUE dans un navigateur faitconnected
êtretrue
connected
peut être passé dans le contrôleurEditorCtrl
etPanelsCtrl
connected
peut être disponible dans leresolve
deglobal.editor
; idéalement, nous pourrions résoudre différents objets selon la valeur deconnected
.
Est-ce que quelqu'un sait comment accomplir cela?
De votre message, je ne sais pas si vous l'avez essayé ou non, mais pourquoi ne pas ajouter 'resolve' pour les deux états' global.new' et 'global.newTRUE'. Quelque chose comme 'resolve: {connected: true/false}' dans ces états. Basé sur ceci, il devrait être disponible dans EditorCtrl. – eminlala