You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AngularJS中实现携带变量参数的超链接页面跳转?

解决方案:点击表格行ID跳转并携带参数

没问题,咱们可以通过两种简单的方式实现你要的效果,根据你的项目情况选就行:

方法一:直接拼接URL(快速实现)

这种方法最直接,不需要额外依赖,直接在<a>标签的href属性里用Angular表达式拼接参数就行。把你原来的HTML代码里的<a>标签改成下面这样:

<tr data-ng-repeat="company in companyList">
  <td>
    <a href="/pages/company.html?companyId={{company.companyId}}"> {{company.companyId}} </a>
  </td>
  <td> {{company.legalName}} </td>
  <td> {{company.dbaName}} </td>
  <td> {{company.formation}} </td>
</tr>

这样点击链接时,就会自动跳转到company.html并带上对应的companyId参数了。

方法二:使用AngularJS的$location服务(更符合Angular规范)

如果你的项目是单页应用,用了Angular的路由(比如ngRoute),推荐用$location服务来处理跳转,这样更符合Angular的设计思路。

步骤1:在控制器中注入$location并添加跳转函数

修改你的AngularJS函数,注入$location并新增一个跳转方法:

$scope.findAllCompanies = function() { 
  $http.get('http://blahblablah/company/all'). 
  then(function(response) { 
    $scope.companyList = response.data; 
  }); 
};

// 新增跳转函数
$scope.goToCompanyDetail = function(companyId) {
  // 跳转到目标页面并携带参数
  $location.path('/pages/company').search({companyId: companyId});
};

步骤2:修改HTML中的链接

把<a>标签的href替换成ng-click事件,同时可以把href设为javascript:void(0)避免默认跳转行为:

<tr data-ng-repeat="company in companyList">
  <td>
    <a href="javascript:void(0)" ng-click="goToCompanyDetail(company.companyId)"> {{company.companyId}} </a>
  </td>
  <td> {{company.legalName}} </td>
  <td> {{company.dbaName}} </td>
  <td> {{company.formation}} </td>
</tr>

补充:如果用了UI-Router

要是你的项目用的是ui-router,可以用$state.go来跳转,代码类似:

// 控制器中注入$state
$scope.goToCompanyDetail = function(companyId) {
  $state.go('company', {companyId: companyId});
};

对应的路由配置里要定义好参数,比如:

$stateProvider.state('company', {
  url: '/pages/company?companyId',
  templateUrl: 'pages/company.html'
});

内容的提问来源于stack exchange,提问作者Sikandar Sahab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:51:13