2016-03-24 21 views
1

私は従業員のリストを持っています。今私は各レコードを従業員プロファイルにリンクしたいと思う。しかし、私が何をしても、それは機能しません。AngularJsはリンクしていません

これは私のコードです:私は角1.5.2を使用してい

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

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

ルートファイル:

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

マイページのソースは、次のようになります。

答えて

2

属性は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> 

マークアップはまた、あなたがルートにURLパラメータを導入する方法を変更します。

コード

.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', 

角度はいつもあなたが何のnはしないので、プロジェクトのルートを見てする必要があります1つのレベルを越えることができます。

以外。 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パラメータは、その構文が正しくありません。 –

関連する問題