在`ng-repeat`行的细节部分

时间:2014-06-09 04:15:51

标签: javascript jquery html angularjs

我正在使用ng-repeat创建行,每行都有可展开的部分,其中显示了详细信息。我在行单击上获取数据并通过双向绑定填充详细信息区域。但问题在于,所有细节部分都会出价到共同的范围变量。

有人可以指导我如何解决这个问题吗?

我的一个解决方案是为每个细节维护map结构。但不知道这是一个好主意还是有更好的解决方案来解决这个问题

提前致谢

修改 Angular.js版本:1.0.8

1 个答案:

答案 0 :(得分:2)

我认为您的问题是您将详细信息标记的“ng-open”绑定到ng-repeat的父范围中的布尔值,而不是将其绑定到ng-repeat迭代本身的属性( ng-repeat的每个循环都会创建实际范围的子范围)。 这是一个例子:

<tr ng-repeat="thing in things">
    <td ng-click="showContent = !showContent">
      <details id="details" ng-open="showContent">
        <summary><em>Details</em></summary>
          <p ng-bind="thing.info"></p>
     </details>
    </td>
</tr>

在重复的每个循环中,它将创建一个子范围,每个范围将包含一个“私有”showContent属性,您的ng-open指令将附加到该属性。

希望这是你的问题,这对你有帮助。

- 编辑 -

(当然,您必须确保未在范围控制器上声明“showContent”属性)