1

这是对这个问题的跟进:如何让我的模型符合我的指令?

该指令正在显示数据,但 ng-click 什么也不做。

我的部分页面现在看起来像这样:

<div>selected user:{{selectedUser.UserName}} </div>

<div user-list data-users="users"></div>

我的指令现在看起来像这样:

tsUui.directive('userList', function(){
    return{
        restrict: 'A',
        template: '<table>'+
                    '<tr>'+
                        '<th>User Name</th>'+
                        '<th>First Name</th>'+
                        '<th>Last Name</th>'+
                        '<th>Email Address</th>'+
                    '</tr>'+
                    '<tr ng-repeat="user in users" ng-click="selectUser(user)">'+
                        '<td>{{user.UserName}}</td>'+
                        '<td>{{user.FirstName}}</td>'+
                        '<td>{{user.LastName}}</td>'+
                        '<td>{{user.Email}}</td>'+
                    '</tr>'+
                '</table>',
        scope:{
                selectedUser: '=',
                users: '='
        },
        link: function (scope, elem, attrs){
            scope.selectUser = function(user){
                console.log("hi");
                selectedUser=user;
            };
        }
    }
});

数据显示正确,但是当我点击一行时没有任何反应:没有控制台日志,所选用户没有改变......什么都没有。我究竟做错了什么?

编辑:控制台正在记录它,但选定的用户绑定不会改变......

4

1 回答 1

0

显然你必须这样做:

scope.selectedUser=user;

我也将部分更改为:

<div>selected user:{{selection.UserName}} </div>

<div user-list data-users="users" selected-user="selection"></div>
于 2013-10-16T23:35:23.157 回答