【发布时间】: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演示供参考:
注意:我使用的是 1.3,而那个演示使用的是 1.0.8,所以我可以使用更新的过滤器。
使用 Xeditable 时,如何在 ng-repeat 中设置一个变量,该变量的作用域是自身而不是父对象?
【问题讨论】:
标签: javascript angularjs x-editable