2016-03-24 100 views
1

我有一個僱員名單。現在我想將每條記錄鏈接到員工檔案。但不管我做什麼,它都不起作用。AngularJs沒有鏈接通過

這是我的代碼:

<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> 

我的頁面源代碼如下所示:

<tr ng-repeat="employee in homeCtrl.employees" ng-href="#/werknemer/1" class="ng-scope" href="#/werknemer/1"> 

路線文件:

.when('/werknemer/{id}', { 
     templateUrl: '../views/employee.html', 
     controller: 'employeeController', 
     controllerAs: 'employeeCtrl' 
    }) 

我使用角1.5.2。

回答

2

href屬性將僅適用於a(錨)標記。這裏你正在嘗試tr這顯然不會工作。

您需要通過調用事件上ng-click

標記

<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> 

還做改變你的路線介紹網址參數的方式做手動重定向。

代碼

.when('/werknemer/:id', { //changed `/{id}` to `/:id` 
    templateUrl: '../views/employee.html', 
    controller: 'employeeController', 
    controllerAs: 'employeeCtrl' 
}) 

控制器

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

您templateUrl應該

templateUrl: '/views/employee.html', 

角總是看項目的根,所以你做不適用走向一個層面。

除此之外。建議不要使用href,你應該使用ng-click來指向一些重定向函數。

例如。

<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); 
} 
+0

另外,正如指出的其他答案,您的路由ID參數有一個不正確的語法。 –