我有一个使用ng-repeat
填充表格的页面。该表显示了公司列表。在表格行上单击我想打开另一个页面,其中包含用于编辑所选公司的表单。
这是html
页面
<table>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
<tr ng-repeat="company in companies">
<td>{{company.companyName}}</td>
<td>{{company.companyAddress}}</td>
</tr>
</table>
这是应该处理点击请求的控制器
angular.module('companyApp.companyForm', ['ngRoute', 'ngResource'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/updateCompany/:companyId', {
templateUrl: 'app/companyForm/companyForm.html',
controller: 'UpdatedCompanyController'
});
}])
.controller('UpdatedCompanyController', ['$scope', '$resource',
function ($scope, $resource) {
}]);
我尝试过使用
$location.url("#/updateCompany").search({id:company.id})
但只创建了一个网址。
我也尝试使用
window.location.href = //...
但是,当我点击表格项目时,我又被重定向到默认页面。
如何重定向到表格行上的新页面?
答案 0 :(得分:0)
基本上$location.url("#/updateCompany").search({id:company.id})
会生成URL
,如#/updateCompany?id=1
&amp;它与$routeProvider
中提供的任何.when条件都不匹配(当我查看有问题的配置时,它什么都不做)。
这可以通过创建URL
以匹配$routeProvider
$location.url("#/updateCompany/"+company.id)
或者您可以使用$location.path
来解决您的问题
$location.path('/updateCompany/'+ company.id);
<强>标记强>
<tr ng-repeat="company in companies" ng-click="redirect(company)">
<td>{{company.companyName}}</td>
<td>{{company.companyAddress}}</td>
</tr>
<强>代码强>
$scope.redirect = function(company){
$location.path('/updateCompany/'+ company.id);
};