我正在使用 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/