【问题标题】:Set Variable Inside Xeditable Row在 Xeditable 行内设置变量
【发布时间】:2015-03-18 15:33:58
【问题描述】:

我正在使用 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">

行编辑的Xeditable演示供参考:

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

注意:我使用的是 1.3,而那个演示使用的是 1.0.8,所以我可以使用更新的过滤器。

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

【问题讨论】:

    标签: javascript angularjs x-editable


    【解决方案1】:

    使用 e-ng-onchange:

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

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

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

    【讨论】:

    • 谢谢,我就是这么想的。我希望有一些内置的方法,但看起来自定义函数就可以了。
    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多