有没有办法通过$routeProvider将URL附加到控制器,而不是硬编码href属性中的URL?如果修改$routeProvider中的路由,则必须修改模板中所有硬编码的URL,这些URL效率不高.
例如,Django Framework提供了“reverse()”实用程序功能和“url”模板标签,它给出了“控制器”(视图功能)和URL参数,它返回了相关的URL.
解决方法
没有内置方法可以执行此操作,但您可以使用
angular.named-routes提供反向URL.
$routeProvider:
$routeProvider.when("/product/:id/:slug",{ templateUrl: "/product.html",controller: "ProductController",name: "product-detail" }); $locationProvider.html5Mode(true);
$范围
{product: {id: 1,name: "Awesome Product",slug: "awesome-product"}}
从模板反向:
<a data-named-route="product-detail" data-kwarg-id="{{ product.id }}" data-kwarg-slug="{{ product.slug}}">{{ product.name }}</a>
应该变成:
<a href="/product/1/awesome-product">Awesome Product</a>