我想以角度制作一个可点击列表,点击该项目后,它应该在控制器中触发一个我想要操作该项目的功能。 代码是:
<h2>User List</h2>
<ul ng-repeat="item in items">
<li ng-repeat="(key, val) in item">
<ul>
<li>
<div ng-click="getUserChat(key)">
<a>{{key}}</a>
</div>
</li>
</ul>
</li>
</ul>
控制器中的:
chatApp.controller('chatController', ['$scope', '$rootScope','$state', '$http' , function($scope, $rootScope, $state, $http) {
$scope.init = function(){
$http.get("http://127.0.0.1:8000/user_list/").success(function(data) {
$scope.items = data;
console.log($scope.items);
});
};
$scope.getUserChat = function(selectedFriend){
$rootScope.selectedFriend = selectedFriend;
console.log($rootScope.selectedFriend);
}
}]);
但是console.log没有显示任何内容,即没有调用相关函数getUserChat。它也没有在控制台中显示任何错误。
答案 0 :(得分:2)
不确定为什么你在表达式中使用(键,值),你可以这样做......
<li ng-repeat="item as item.name in item">
(假设您要在模板中显示名为&#34; name&#34;的项目的属性,您可能希望显示其他内容。)
然后,您只需将整个项目传递给函数...
<div ng-click="getUserChat(item)">
这样该功能可以访问所有内容。
另外,不确定ng-click是否适用于div,这可能就是为什么你的函数没有被调用。