在可编辑行内设置变量

时间:2015-03-18 15:33:58

标签: javascript angularjs x-editable

我正在使用Xeditable指令来创建一个可编辑的表单。

我有两个下拉列表,当一个更改时,我想更新另一个。问题是Xeditable在编辑表单时会创建子范围。我无法弄清楚如何在该子范围内设置变量,以便该变量仅存在于该表行的范围内。

我试过

 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的下拉列表中传递当前选择。所以我试着把它传递给控制器​​中的一个函数:

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

但是更新了$ parent范围。

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

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

行编辑的可编辑演示以供参考:

  

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

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

使用Xeditable时,如何在ng-repeat中设置一个变量,该变量的范围是自身而不是父变量?

1 个答案:

答案 0 :(得分:0)

使用e-ng-onchange:

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

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

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