Angular routeProvider和传递范围

时间:2016-07-06 14:43:28

标签: javascript angularjs route-provider

我正在使用routeProvider在我的应用中创建深层链接。我的问题是我需要有多个级别。所以,假设我有一个链接的产品页面:

http://example.com/#/products

$ scope.products包含所有产品。点击产品后,我需要保留$ scope.products并将网址更改为http://example.com/#/products/1。 ' / 1'是产品的ID。

1 个答案:

答案 0 :(得分:1)

在您的产品控制器上创建一个功能并调用它以导航到编辑页面http://example.com/#/products这样的内容......

$scope.edit = function (data) {
        $window.location.href = '#/Products/Edit' + '?id=' + data.id;
    };
编辑控制器上的

调用$ routeParams并从api加载对象,因为它可能已更改

function loadProduct()
    {
        productEditFactory.getProduct($routeParams.id).then(function (response) {
            $scope.product = response.data;
        }, function (response) {

        });
    }

    if ($routeParams.id)
    {
        loadProduct();
    }
    else {
        $scope.editMode = false;
    }

您还需要使用类似的内容更新$ routeProvider定义...

.when('/Product/Edit', {
        templateUrl: function (params) { return 'Products/Edit?id=' + params.id ; }
    })