【发布时间】:2017-03-15 03:26:57
【问题描述】:
我已经配置了以下 ui-router。
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 });
});
}]);
因此,浏览器中的https://localhost:3000/#/new 导致(状态global.editor,然后到)状态global.editor.panels。
现在,我想添加一个参数connected:
- 我不希望它显示在 url 中
-
浏览器中的https://localhost:3000/#/new 使
connected成为false,而浏览器中的https://localhost:3000/#/newTRUE 使connected成为true -
connected可以传入控制器EditorCtrl和PanelsCtrl -
connected可以在global.editor的resolve中使用;理想情况下,我们可以根据connected的值来解析不同的对象。
有谁知道如何做到这一点?
【问题讨论】:
-
从您的帖子中我不确定您是否尝试过,但为什么不为
global.new和global.newTRUE状态添加resolve。在那些州像resolve: { connected: true/false }这样的东西。基于此,它应该在 EditorCtrl 中可用。
标签: javascript angularjs angular-ui-router nested-views