是否可以仅将一个单元格添加到一行?
在我的代码中:
<tbody>
<tr ng-repeat="user in users ng-click="selectUser(user)">
<td>{{user.username}}</td>
<td><input type="text"....></td>
<td><input type="checkbox"...></td>
<td><input type="submit" ... ng-show="user==selectedUser" /></td>
</tr>
</tbody>
在此代码中,我希望最后td
仅出现在所选行上,不会影响其他行,是否可能?或者它是JS或CSS的东西?
答案 0 :(得分:1)
有可能,您的代码似乎大部分都是正确的,但您使用selectedUser
作为函数和用户的对象表示。也许你的函数会被称为selectUser
,它会设置$scope.selectedUser
。从那以后ng-show="user == selectedUser"
会成功。
我个人并不喜欢在视图中有条件,所以我在控制器中有一个函数进行比较并返回true或false。
function isSelectedUser(user) {
return user == $scope.selectedUser;
}
然后您可以使用ng-show="isSelectedUser(user)"
答案 1 :(得分:1)
使用JQuery在所选行<td>
上附加<tr>
。 :nth-child()
是您选择行的简便方法。
var selectedRow = 2;
$('tbody tr:nth-child('+ selectedRow +')').append('<td><input type="submit" /></td>');
答案 2 :(得分:1)
首先,您应该使用控制器作为语法,它会自动将控制器中的所有内容放在1个对象下,这可能会导致Angular出现问题。但我不认为这是问题所在。
您选择的用户可能等于所选用户,但如果他们没有指向相同的参考,他们就无法做到。如果用户名不同,我可以更改ng-show =&#34; user.username == selectedUser.username&#34; 这应该可以正常工作。