角度可点击列表

时间:2014-04-03 12:24:09

标签: javascript angularjs

我想以角度制作一个可点击列表,点击该项目后,它应该在控制器中触发一个我想要操作该项目的功能。 代码是:

<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。它也没有在控制台中显示任何错误。

1 个答案:

答案 0 :(得分:2)

不确定为什么你在表达式中使用(键,值),你可以这样做......

<li ng-repeat="item as item.name in item">

(假设您要在模板中显示名为&#34; name&#34;的项目的属性,您可能希望显示其他内容。)

然后,您只需将整个项目传递给函数...

<div  ng-click="getUserChat(item)">

这样该功能可以访问所有内容。

另外,不确定ng-click是否适用于div,这可能就是为什么你的函数没有被调用。