angularjs - 如何以 Angular 将值从一条路线传递到另一条路线?

标签 angularjs angular-routing

我正在使用 Angular 路由器,并且我有一条类似于下面的路线

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 条路线,一条用于列表,另一条用于列表中所选项目的仪表板。

在列表 route ,选择并显示 ListView ,其中我显示了包含一些数据的网格,该网格中的一列是可单击的名称列,单击它后,我将路线更改为 href="#/view/{row.Id}"

这很好用。

但是,我如何将一些附加参数传递给 DashboardAbcController (例如名称或任何其他详细信息)?

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

最佳答案

像这样的东西怎么样: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>

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

关于angularjs - 如何以 Angular 将值从一条路线传递到另一条路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26271831/

相关文章:

dart - 后退按钮不适用于分层路由

javascript - 更新数组对象值

javascript - NG-Repeat 生成包含动态类的列表

javascript - 两次验证之间的 Angular 过滤器不起作用?

Angular 7 路由无法使用浏览器后退按钮(哈希更改未加载组件)

angular - Angular中的嵌套路由

angularjs - Jasmine spyOn angularjs内部方法,例如$ filter ('date')

javascript - 如何将数组对象转换为对象

javascript - Angular:处理两个以上项目的最佳方式(客户端+管理面板)

javascript - 将 angularJS 与 requireJS 一起使用 - 无法读取未定义的属性 'module'