我正在使用angularjs构建一个应用程序,该应用程序需要显示一个页面,然后在用户粘贴url时打开一个包含详细信息的模式窗口。
路由器配置如下:
.state('main.legalentitites', {
url: '/products/{productId:string}',
views: {
'content@': {
templateUrl: 'app/views/productdetail.html',
controller: 'productDetailCtrl',
},
},
})
.state('main.products.add', {
url: '/products/{productId:string}/add',
onEnter: function($state, $modal) {
$modal
.open({
templateUrl: 'app/views/productModal.html',
resolve: {},
controller: 'ProductCtrl',
})
.result.then(function(result) {
if (result) {
return $state.transitionTo('main.products')
}
})
},
})
.$urlRouterProvider.otherwise(function($injector, $location) {
var $state = $injector.get('$state')
$state.go('main.home')
})
当我输入网址https://localhost:44821/products/6cbc799a-fdc8-4e4d-ac27-0a5165423641/add
时,它不会导航到页面,并且模式也不会打开。控制台中也没有错误。它总是转到否则配置的部分。可能是什么问题?
答案 0 :(得分:0)
'/ user /:id'-匹配'/ user / bob'或'/ user / 1234 !!!'甚至“ / user /”,但不是“ / user”或“ / user / bob / details”。第二个路径段将被捕获为参数“ id”。
和:
'/ user / {id}'-与上一个示例相同,但使用花括号语法。
因此,我建议您将url从'/ products / {productId:string} / add'更改为'/ products / add / {productId:string}'。应该可以。