将参数发送到URL中

9 浏览
0 Comments

将参数发送到URL中

有人能解释一下如何使用参数进行路由到一个URL吗?

例如,我想点击一个产品,并通过产品的ID打开更多的信息。

到目前为止,我的路由如下...

angular.module('shop', ["customFilters", "cart", "ngRoute"])
.config(function ($routeProvider){
    $routeProvider.when("/complete", {
        templateUrl: "../app/views/orderComplete.html"
    });
    $routeProvider.when("/placeorder", {
        templateUrl: "../app/views/placeOrder.html"
    });
    $routeProvider.when("/checkout", {
        templateUrl: "../app/views/checkoutSummary.html"
    });
    $routeProvider.when("/products", {
        templateUrl: "../app/views/productList.html"
    });
    $routeProvider.when("/product:", {
        templateUrl: "../app/views/product.html"
    });
    $routeProvider.otherwise({
        templateUrl: "../app/views/productList.html"
    });
});

因此,通过点击...

更多信息

我想要路由到product/{{id}}.html ...

有人能告诉我在...

$routeProvider.when("/product:id", {
    templateUrl: "../app/views/product.html"
});

中我漏掉了什么吗?

0
0 Comments

问题:如何在ui-router中使用ui-sref将参数传递给控制器?

原因:这个问题的原因是用户想要在ui-router中使用ui-sref来传递参数给控制器。他在stackoverflow上找到了一个类似的问题,并在那里找到了解决方法。

解决方法:用户可以通过在状态名称后面添加参数来将参数发送到状态。例如:home({foo: 'fooVal1', bar: 'barVal1'})。然后,在URL中添加参数的模板,如'/:foo?bar'。用户可以按照以下示例进行操作:

$stateProvider
    .state('home', {
      url: '/:foo?bar',
      views: {
        '': {
          templateUrl: 'tpl.home.html',
          controller: 'MainRootCtrl'
        },
        ...
      }

然后,通过以下方式发送值:


0
0 Comments

问题的原因是URL参数前缺少了一个斜杠。解决方法是在URL参数之前加上一个斜杠。同时,在有动态URL参数的情况下,应该使用ng-href而不是href。如果有"/product/new"这样的URL,可以如下添加:

routeProvider.when("/product/new", {
    templateUrl: "../app/views/newProduct.html"
});

0