我正在构建的网站已经使用MVC构建了URL。例如,/ Account转到页面,/ Customers转到页面,/ Quotes转到页面。在/ Quotes页面上,我有一个多步向导,我想在其上使用Ui-Routing。请参阅下面的app.js,这一切都有效。
因此我的网址变为/ Quotes#newmodel,/ Quotes#customer等。向导的每个步骤都有不同的#{value}。问题在于.otherwise会影响网站的所有其他区域。所以如果我要去/ Account,我会得到url / Account#向导。我不希望这种情况发生在/ Quotes页面以外的任何地方。有什么我可以做的URL匹配,所以我可以删除.otherwise?
'use strict';
var myApp = angular.module('myApp', ['ui.router']);
myApp.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/wizard");
$stateProvider
.state('wizard', {
url: '/wizard',
templateUrl: 'Scripts/templates/wizardLayout.html',
controller: 'wizardNavigationCtrl'
})
.state('wizard.newmodel', {
url: '/newmodel',
templateUrl: 'Scripts/templates/wizardModel.html',
controller: 'wizardModelCtrl'
})
.state('wizard.other', {
url: '/other',
templateUrl: 'Scripts/templates/wizardOther.html',
controller: 'wizardOtherCtrl'
})
.state('wizard.customer', {
url: '/customer',
templateUrl: 'Scripts/templates/wizardCustomer.html',
controller: 'wizardCustomerCtrl'
})
.state('wizard.shipping', {
url: '/shipping',
templateUrl: 'Scripts/templates/wizardShipping.html',
controller: 'wizardShippingCtrl'
})
.state('wizard.review', {
url: '/review',
templateUrl: 'Scripts/templates/wizardReview.html',
controller: 'wizardReviewCtrl'
});
}]);
我也对如何使路由加载布局感兴趣,然后默认情况下转到wizard.newmodel路由(尽管这可能是一个单独的问题)。基本上与我点击:
时的行为相同<a sref-ui=".newmodel">
答案 0 :(得分:0)
我删除了app.js中的$ urlRouterProvider.otherwise(“/ wizard”)。 相反,我在main / Quote页面添加了一个控制器,将$ location.url重定向到'/ wizard'。以下是代码。
myApp.controller('wizardCtrl', ['$location', function ($location) {
$location.url('wizard')
}])