【问题标题】:X-Editable can't define form in ng-repeatX-Editable 无法在 ng-repeat 中定义表单
【发布时间】:2014-12-10 21:45:24
【问题描述】:

我正在尝试使用 angularjs 和 x-editable 进行列编辑,其形式在 thead 属性中定义。这在我单独为每一列进行标记时有效,但我正在寻找使用 ng-repeat 定义列,但这是行不通的。

似乎表单控制器没有添加到范围中,因此 x-editable 字段无法使用 $parse(attrs.eForm)(scope); 引用它来自 xeditable.js

我的猜测是它在 ng-repeat 中定义的表单存在某种范围问题,但我是 Angular 新手,所以不知道更多。

jsfiddle 显示问题。使用只有一项的 ng-repeat,而 html 甚至没有引用这些属性来进行测试。

<td style="width: 40%">
<td ng-repeat="header in headers" style="width:40%">

感谢您的帮助!

【问题讨论】:

    标签: angularjs ng-repeat x-editable


    【解决方案1】:


    有点晚了,但这里是jsFiddle。诀窍是在使用 angular xeditable 创建动态表单时使用表格形式而不是普通形式:) e-form="rowform" 表格形式(或可编辑行)文档的链接是here

    【讨论】:

    • 感谢您的回复。但是,此示例有所不同,因为每种形式都是 ng-repeat 的一部分。在我的示例 jsfiddle.net/cwbk0aao 中,我试图在 ng-repeat 中定义每个“很棒的用户”元素,并在外部定义表单。我发现它是一个范围问题,并修改了 xEditable 代码以将表单添加到 rootScope,以便元素可以相互访问。
    • 您的案例看起来像column editable
    • 关闭,但有一个主要区别阻止它为我工作。我在单独的 ng-repeat 中定义表单。这是列编辑示例,只取出了两列 jsfiddle.net/NfPcH/5881 。与“名称”相关联的顶部表单不在 ng-repeat 中。对于我来说,“名称”将是可变的,并且我将有列的可变,因此需要在 ng-repeat 中定义表单控制器。请参阅我的示例 jsfiddle.net/cwbk0aao 中的“有效”和“无效”cmets。它们在两个不同的范围内定义,所以我不得不使用 rootscope。
    【解决方案2】:

    使用div ng-form="myngformname" editable-form

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2017-07-29
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 2014-09-12
      • 1970-01-01
      相关资源
      最近更新 更多