如何以角度方式将值从一个路径传递到另一个路径?

时间:2014-10-09 06:36:22

标签: angularjs angular-routing

我正在使用角度路由器,我的路线类似于下面的路线

angular.module("manageAbcApp", ["myApp", "ngRoute"])
        .config(['$routeProvider', function($routeProvider) {
            $routeProvider
                .when('/list', {
                    templateUrl: '/Scripts/app/views/abc/AbcList.htm',
                    controller: 'ListAbcController'
                })
                .when('/view/:id', {
                    templateUrl: '/Scripts/app/views/abc/AbcDashboard.htm',
                    controller: 'DashboardAbcController'
                })
                // more...
                .otherwise({
                        redirectTo: '/list'
                    });
        }]);

因此,您可以看到有2条路线用于列表,其他路线用于为列表选择的项目的仪表板。

在列表路径中,选择并显示列表视图,其中我显示带有一些数据的网格,此网格中的一列是可点击的名称列,点击它后我将路径更改为{{1 }}

这很好用。

但是,我如何将一些额外的参数传递给href="#/view/{row.Id}",如名称或任何其他细节?

编辑:我发现我可以使用这些控制器共用的服务,并在DashboardAbcController更新服务中的某些模型。但我不想使用ng-click因为如果我这样做,那么我将失去允许用户在新标签中打开我的链接,复制粘贴,共享等的选项......

2 个答案:

答案 0 :(得分:2)

使用$ rootscope分配值ex。 $ rootscope.name ='name'或使用get参数

.when('/view/:id?name=&id=', {
     templateUrl: '/Scripts/app/views/abc/AbcDashboard.htm',
     controller: 'DashboardAbcController'
  })

答案 1 :(得分:2)

如下所示:Demo

.when('/list', {
    templateUrl: '/Scripts/app/views/abc/AbcList.htm',
    controller: 'ListAbcController'
})
.when('/view/:id/:name/:other/:details', {
    templateUrl: '/Scripts/app/views/abc/AbcDashboard.htm',
    controller: 'DashboardAbcController'
})

并且,您可以创建一个类似的链接:

<a href="#/home/1/some_name/other/details?random=random">Home</a>

注意:您可以将其他数据作为路径参数传递给您不想修复的路径。