gpt4 book ai didi

javascript - 获取 meteor 中语义 Accordion 的当前状态

转载 作者:行者123 更新时间:2023-11-28 00:22:16 24 4
gpt4 key购买 nike

语义 Accordion 让我发疯!有人知道在 Meteor 中实现时是否有办法获取 Accordion 的当前状态(例如打开或关闭)?如果我理解正确的话,我应该在 Template.foo.helpers 部分内的 .js 文件中创建一个函数。到目前为止我所做的是:

    isOpen : function() {
var cState = $('.ui.accordion').currentState();
return cState=='open';
}

如果 Accordion 打开,这应该返回 true,否则返回 false,但它似乎不起作用。我究竟做错了什么?有办法完成这样的工作吗?

提前致谢!

最佳答案

问题是您的助手没有引用响应式(Reactive)数据源,这意味着每当 Accordion 的状态发生更改时它都不会重新执行。

您可以通过使用 Semantic UI Accordion 插件回调来跟踪小部件的当前状态并将其存储为响应式(Reactive)数据源来解决此问题。

Template.accordion.onCreated(function(){
// you'll need to meteor add reactive-var to use this
this.opened = new ReactiveVar(false);
});

Template.accordion.onRendered(function(){
// store a reference to the template instance to use it later
// in functions where the this keyword will be bound to something else
var template = this;
this.$(".ui.accordion").accordion({
onOpen:function(){
// here, the this keyword is bound to the currently opened item
template.opened.set(true);
},
onClose:function(){
// modify the reactive var accordingly
template.opened.set(false);
}
});
});

Template.accordion.helpers({
opened:function(){
// Template.instance().opened is a reactive data source
// this helper will get re-executed whenever its value is modified
return Template.instance().opened.get();
}
});

关于javascript - 获取 meteor 中语义 Accordion 的当前状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com