0

在 ng-repeat 我有一个 ng-switch 条件。我希望 ng-switch 参数的值是一个绑定。但是,大括号绑定似乎没有转换为预期的生成值。我知道 ng-switch 创建了一个新范围,这肯定会导致问题。我知道“点”解决方法,但是由于这里的值是通过控制器查询来自服务的,所以我不知道如何在这种情况下实现它。

html

<tr ng-repeat="user in users">
    <td ng-switch on="editState"><p ng-switch-when="noEdit">{{user.username}}</p><input type="text" value="{{user.username}}" ng-switch-when="{{user.username}}"></td>
</tr>

控制器.js

$scope.users = Users.query();

-编辑-

这是触发开关的功能

$scope.editUser = function(usernameEdit) {
    $scope.editState = usernameEdit;
};
4

1 回答 1

2

$scope.editState如果您希望能够同时编辑多个用户,则单个将不起作用。我建议edit在 each 上放置一个属性user,并使用该属性来控制 ng-switch:

<tr ng-repeat="user in users">
   <td ng-switch on="user.edit"> 
      <span ng-switch-when="true">
         <input  type="text" value="{{user.username}}">
         <a href="" ng-click="user.edit=false">done</a>
      </span>
      <p ng-switch-default>
         <a href="" ng-click="user.edit=true">edit</a> {{user.username}}
      </p>
   </td>
</tr>

小提琴

于 2013-04-09T15:05:28.990 回答