Javascript AngularJs未通过链接

Javascript AngularJs未通过链接,javascript,angularjs,routing,angularjs-routing,Javascript,Angularjs,Routing,Angularjs Routing,我有一份员工名单。现在我想将每个记录链接到一个员工档案。但不管我做什么,它都不起作用 这是我的代码: <tr ng-repeat="employee in homeCtrl.employees" ng-href="#/werknemer/{{employee.EmployeeId}}"> <td>{{ employee.Role }}</td> <td>{{ employee.Company }}</td>

我有一份员工名单。现在我想将每个记录链接到一个员工档案。但不管我做什么,它都不起作用

这是我的代码:

<tr ng-repeat="employee in homeCtrl.employees" ng-href="#/werknemer/{{employee.EmployeeId}}">
    <td>{{  employee.Role }}</td>
    <td>{{  employee.Company }}</td>
    <td>{{  employee.FirstName }}</td>
    <td>{{  employee.LastName }}</td>
</tr>

我用的是Angular 1.5.2

href
属性仅对
一个
(锚定)标记有效。在这里,您正在
tr
上尝试,这显然不起作用

您需要通过调用
ng上的事件单击

标记

<tr ng-repeat="employee in homeCtrl.employees" ng-click="doRedirect(employee.EmployeeId)">
    <td>{{  employee.Role }}</td>
    <td>{{  employee.Company }}</td>
    <td>{{  employee.FirstName }}</td>
    <td>{{  employee.LastName }}</td>
</tr>
控制器

//ideally this method can be easily moved out to service, will act as a redirection logic
$scope.doRedirect = function(id){
   $location.path('#/werknemer/'+id)
}

href
属性仅对
一个
(锚定)标记有效。在这里,您正在
tr
上尝试,这显然不起作用

您需要通过调用
ng上的事件单击

标记

<tr ng-repeat="employee in homeCtrl.employees" ng-click="doRedirect(employee.EmployeeId)">
    <td>{{  employee.Role }}</td>
    <td>{{  employee.Company }}</td>
    <td>{{  employee.FirstName }}</td>
    <td>{{  employee.LastName }}</td>
</tr>
控制器

//ideally this method can be easily moved out to service, will act as a redirection logic
$scope.doRedirect = function(id){
   $location.path('#/werknemer/'+id)
}

您的templateUrl应该是

templateUrl: '/views/employee.html',
angular始终查看项目根,因此不需要向上遍历一个级别

除此之外。不建议使用href,您应该使用ng click指向某个重定向功能

例如


...
$scope.goTo=功能(路由){
//根据route参数是否包含前导“#”,您可能需要使用以下任一选项。
$window.location.assign(路线);
或
$location.path(route);
}

您的模板URL应该是

templateUrl: '/views/employee.html',
angular始终查看项目根,因此不需要向上遍历一个级别

除此之外。不建议使用href,您应该使用ng click指向某个重定向功能

例如


...
$scope.goTo=功能(路由){
//根据route参数是否包含前导“#”,您可能需要使用以下任一选项。
$window.location.assign(路线);
或
$location.path(route);
}

另外,正如另一个答案所指出的,路由中的id参数的语法不正确。此外,正如另一个答案所指出的,路由中的id参数的语法不正确。
<anyElement ng-click='goTo("#/werknemer/1")'></anyElement>

...

$scope.goTo = function(route){

    //depending on wether the route param contains the leading "#" you might want to use either of the following.

    $window.location.assign(route);

    OR

    $location.path(route);
}