我一直在使用 dojo 1.7 并且有两个选项卡。我在一个选项卡的某个字段中设置了一个值,该值需要进入另一个选项卡上的另一个字段。
我似乎记得在 1.7+ 中打开选项卡时有一种方法可以执行 javascript 例程,但在我的一生中,我无法找到执行此操作的参数。
我计划执行 javascript 以通过 dojo.byId 读取值,然后在另一个选项卡中填充该值。除非有人知道一种更简单的方法将一个选项卡中的值绑定(bind)到另一个选项卡中的另一个字段。那真是太好了!
和往常一样,感谢您的建议。
珍妮
最佳答案
对于单个临时同步,我建议使用 dojo/Stateful
的 watch
方法,它是每个 dijit 小部件(更准确地说是子类 的每个类)都可用的 mixin >dijit/_WidgetBase
)。它允许监视值的变化,而不是在函数调用上 Hook 事件。
var spinner1 = registry.byId("spinner1")
, spinner2 = registry.byId("spinner2")
;
spinner1.watch("value", function(prop, oldValue, newValue) {
spinner2.set("value", newValue);
});
在 jsFiddle 上查看它的实际情况:http://jsfiddle.net/phusick/YyNCk/
对于更复杂的情况,请参阅我对 Synchronize interdependent Dojo widgets/values 的回答并查看一个工作示例:http://jsfiddle.net/phusick/HCx3w/
编辑:您原来问题的答案是选项卡的 ContentPane
方法 _onShow
上的 dojo/aspect
:
aspect.after(registry.byId("tab2"), "_onShow", function() {
console.log("#tab2 is now visible");
});
我将其添加到上述 jsFiddle 中.
关于javascript - 在dojo中将数据从一个选项卡绑定(bind)到另一个选项卡(在选项卡打开时?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167742/