我在控制器内部运行功能时遇到了问题。
给出以下部分:
<div ng-controller="KundeDetailCtrl"><table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>InstallationsID</th>
</tr>
</thead>
<tbody >
<tr data-ng-repeat="mandant in kunde.mandanten" ng-click="getMandant(mandant)" >
<td> {{mandant.name}}</td>
<td>{{mandant.id}}</td>
</tr>
</tbody>
</table></div>
我希望能够点击一行并在我的控制器中调用相应的功能:
var AppControllers = angular.module('AppControllers', []);
AppControllers.controller('KundeDetailCtrl', ['$scope', '$routeParams', 'Kunde',
function($scope, $routeParams, Kunde) {
$scope.kunde = Kunde.get({kundeId: $routeParams.kundeId}, function(kunde) {
});
$scope.getMandant = function(id){
for(var i= 0, l=$scope.kunde.mandanten.length; i<l; i++){
if($scope.kunde.mandanten[i].id == "id")
{
$scope.mandant = $scope.kunde.mandanten[i];
}
}
Location.href='index.html#/kunden/{{kunde._id}}/module'
};
}]);
实际上,我只想知道点击了哪一行,并将点击的行的对象传递给下一个应该显示其他数据的部分。
ng-click似乎根本没有做任何事情。在控制台中,我只看到getMandant: null
任何人都可以帮我吗?
答案 0 :(得分:0)
您似乎正在将mandaten列表中的id与字符串“id”进行比较而不是对象ID:
if($scope.kunde.mandanten[i].id == "id")
你还应该考虑使用===而不是==,它是比较javascript中的东西的首选方式。
您似乎正在重定向到角度应用程序中的另一个视图,是否有任何理由不使用$ location服务?