我希望有这样的路线:
/products/1-bananas
/products/2-apples
/products/3-oranges
...
/products/25-television
/products/26-router
是否可以将参数ID与文本混合在一起?我会以一种方式使用它来获取pageload上的productID,并查询数据库以获取相关信息。
我知道这样做的方法(有效)将是这样的:
/products/1/bananas
可以设计为如此的路线:
/products/:productId/:productName
但我觉得这是第一种方式,ID和名称在同一个字符串中,并用短划线分隔,看起来更清晰。
关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
我会提醒您避免发明新模式并将其用于现有模式。虽然您可能认为连字符更具可读性,但角度路径基于RESTful设计原则。已建立的模式资源/ id /关系更具可扩展性和可理解性。您可以想象,当您开始介绍其他类型的苹果或电视,甚至是不同的制造商和农民时,您的情景会多快失控。
如果你坚持你指定的方法,你可以设置你的路线和资源:
.when('/products/:id-:name', {
templateUrl: '/assets/angular/templates/products.html',
controller: 'ProductCtrl'
})
和
.factory('Product', ['$resource',
function($resource) {
return $resource('/products/:id-:name', {});
}
])
连字符只是一个字符,它没有特殊含义所以你可以使用它。有了这个,你应该能够按照自己的方式进入路线参考。