在可编辑行内设置变量

Set Variable Inside Xeditable Row

我正在使用 Xeditable 指令生成 editable 表单。

我有两个下拉菜单,当其中一个发生变化时,我想更新另一个。问题是 Xeditable 在编辑表单时创建了一个子作用域。我无法弄清楚如何在该子项的范围内设置变量,以便该变量仅存在于该 table 行的范围内。

我试过了

 e-ng-init="myChildVariable = 1"

然后

 e-ng-change="myChildVariable =2"

但是当我跟踪 {{myChildVariable}} 时它似乎没有得到更新。

在指令内部,它创建了这个范围:

    var self = this;
    self.inputEl.bind('change', function() {
      self.scope.$apply(function() {
        self.scope.$form.$submit();
      });
    });

XEditable 可以从 $data 的下拉列表中传递当前 selection。所以我试图将它传递给控制器​​中的一个函数:

 e-ng-change="updateVarible($data)"

但这会更新 $parent 范围。

我需要第一个 select 来设置变量,第二个用来过滤。我有过滤器工作,我只需要设置第二个可以访问的变量。

    <span editable-select="user.status" e-ng-change="setVariableHereSomehow" e-form="rowform" e-ng-options="s.value as s.text for s in statuses">
      {{ showStatus(user) }}
    </span>

    <span editable-select="user.group" e-name="group" onshow="loadGroups()" e-form="rowform" e-ng-options="g.id as g.text for g in groups | filter: useTheVariableHere">

Xeditable行编辑演示参考:

http://jsfiddle.net/NfPcH/93/

注意:我使用的是 1.3,而该演示使用的是 1.0.8,因此我可以使用更新的过滤器。

使用 Xeditable 时,我如何在 ng-repeat 中设置一个作用域为自身而不是父级的变量?

使用 e-ng-onchange:

e-ng-change="changeStatus($data,user)"

这是我所做的一个 jsfiddle link。对控制器进行了一些修改。例如我的组选择。将状态更改为 Status4 将更改用户的组。

http://jsfiddle.net/leeray75/jwv29g1m/