Angularjs 添加表数据<;td>;仅对ng上的一行重复

Angularjs 添加表数据<;td>;仅对ng上的一行重复,angularjs,angularjs-ng-repeat,angularjs-ng-show,Angularjs,Angularjs Ng Repeat,Angularjs Ng Show,在具有ng repeat的表格中,是否可以仅向一行添加单元格 在我的代码中: <tbody> <tr ng-repeat="user in users ng-click="selectUser(user)"> <td>{{user.username}}</td> <td><input type="text"....></td>

在具有ng repeat的表格中,是否可以仅向一行添加单元格

在我的代码中:

<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>


这是可能的,看起来您的代码基本上是正确的,但您使用的是
selectedUser
作为函数和用户的对象表示。也许您的函数将被调用
selectUser
,这将设置
$scope.selectedUser
ng show=“user==selectedUser”
将从那时起生效

我个人不太喜欢在视图中有条件,所以我在控制器中有一个函数来进行比较并返回true或false

function isSelectedUser(user) {
    return user == $scope.selectedUser;
}

然后您可以只使用
ng show=“isSelectedUser(user)”

这是可能的,看起来您的代码基本上是正确的,但您将
selectedUser
用作函数和用户的对象表示。也许您的函数将被调用
selectUser
,这将设置
$scope.selectedUser
ng show=“user==selectedUser”
将从那时起生效

我个人不太喜欢在视图中有条件,所以我在控制器中有一个函数来进行比较并返回true或false

function isSelectedUser(user) {
    return user == $scope.selectedUser;
}

然后,您可以使用JQuery将
添加到所选行
:nth-child()
是一种选择行的简单方法

var selectedRow = 2;
$('tbody tr:nth-child('+ selectedRow +')').append('<td><input type="submit" /></td>');
var selectedRow=2;
$('tbody tr:n子项('+selectedRow+')).append('');

使用JQuery将
附加到所选行
:nth-child()
是一种选择行的简单方法

var selectedRow = 2;
$('tbody tr:nth-child('+ selectedRow +')').append('<td><input type="submit" /></td>');
var selectedRow=2;
$('tbody tr:n子项('+selectedRow+')).append('');

首先,您应该使用控制器作为语法,它会自动将控制器中的所有内容放在一个对象下,这可能会导致角度问题。但我认为这不是问题所在

您选择的用户可能与selectedUser相同,但如果它们不指向同一引用,则无法使用。如果用户名不同,我会更改ng show=“user.username==selectedUser.username”
这应该可以很好地工作。

首先,您应该使用控制器作为语法,它会自动将控制器中的所有内容放在一个对象下,这可能会导致角度问题。但我认为这不是问题所在

您选择的用户可能与selectedUser相同,但如果它们不指向同一引用,则无法使用。如果用户名不同,我会更改ng show=“user.username==selectedUser.username”

这应该可以正常工作。

是的,请更正功能为selectUser(用户),ng show现在可以正常工作。但在刷新时,我的表有3列,单击任何一行,第4列就会出现。我希望第4列只显示在所选行上,而不是整个表中的空内容。我不确定我是否理解您现在遇到的问题。代码应该只在您单击的行中显示submit按钮,不是吗?是的,更正功能为selectUser(用户),ng show现在可以正常工作。但在刷新时,我的表有3列,单击任何一行,第4列就会出现。我希望第4列只显示在所选行上,而不是整个表中的空内容。我不确定我是否理解您现在遇到的问题。代码应该只在您单击的行中显示submit按钮,不是吗?什么是角度方式?Alex的答案是角度方式。您还说过“我希望第4列只显示在所选行上,而不是整个表中的空内容”。这意味着您的行将有不同数量的单元格-其中一些有3个,而另一些有4个。我很确定表格中的行具有不同的单元格数
是不可能的。是“现在”还是“不”可能?啊哈,谢谢这正是我的问题,不同单元格数或列数的行如果你真的想强制行具有不同的列数,你可以检查这个=()什么是角的方式?亚历克斯的答案是角的方式。您还说过“我希望第4列只显示在所选行上,而不是整个表中的空内容”。这意味着您的行将有不同数量的单元格-其中一些有3个,而另一些有4个。我很确定表格中的行具有不同的单元格数
是不可能的。是“现在”还是“不”可能?啊哈,谢谢这正是我的问题,不同单元格数或列数的行如果你真的想强制行具有不同的列数,你可以检查这个=()问题不在于控制器、范围或方法,问题在于ng repeat指令,该指令将列应用于所有行,而不仅仅是所选行。那么您确定ng show不在元素上吗?代码在那里写入的方式是,列将始终在那里,但输入框仅在选中行时才会显示。这几乎就是你所拥有的,哪个部分没有按预期工作?在提交输入后添加另一个td,例如再次{{user.username}你会在单击时看到,中间的列将被添加到所有行我想要的是中间的列只是被添加到选定的行不是所有的行我看不到任何差异!问题不在于控制器、范围或方法,问题在于ng repeat指令,该指令将列应用于所有行,而不仅仅是所选行。那么您确定ng show不在元素上吗?代码在那里写入的方式是,列将始终在那里,但输入框仅在选中行时才会显示。这几乎就是你所拥有的,哪个部分没有按预期工作?在提交输入后添加另一个td,例如再次{{user.username}你会看到,单击后,中间的列将添加到所有行中