【问题标题】:How make a dynamic value in MeteorJS如何在 MeteorJS 中创建动态值
【发布时间】:2017-08-16 18:18:59
【问题描述】:

我需要在流星 JS 中设置一个变量或数组,只要它发生变化。页面上的任何使用位置都会发生变化。

到目前为止,我已经尝试在会话中设置值。

let in  = Session.get("in");

这在 HTML 中。以下工作正常。每当它检测到数组发生变化时,它就会发生变化

   {{#each in}}
        <span class="selectable-tags"> {{this}} </span>
     {{/each}}

但是每当我尝试使用以下将这些标签添加到其他 div 时。然后添加到其他 div 的那些不会改变。

 "click .selectable-tags"(e, t) {
  // sets the tags inside the Method  box on click 
    var el = e.target.cloneNode(true);
        el.setAttribute('contenteditable', false);
        document.querySelector('[contenteditable]').appendChild(el); },

使用带有 blaze 用户界面的流星。这个可以作为参考link

编辑:Session.get 或 set 供参考。这是为了说明这些值会随着设置触发的任何事件发生变化。

【问题讨论】:

  • 你把这个let in = Session.get("in");放在哪里?
  • 请检查编辑@Styx
  • 好的,我明白你的意思了。实际上,我想看看你的模板名称,所以我会给你一个答案,你可以复制/粘贴,它会在没有任何更改的情况下工作。
  • 您正在寻找方法让这个变量在您每次更改 html 页面上的内容时都得到更新?它不会自动工作,你应该自己更新反应变量。
  • 查看整个代码jsfiddle.net/7chuq9r8@Styx

标签: meteor meteor-blaze


【解决方案1】:

您需要添加一个返回会话变量的助手并在您的 html 代码中显示该助手:

 Template.yourtemplate.helpers({
   inHelper: ()=> {
     return Session.get('in');
   }    
 )}

在 html 中:

<div>{{inHelper}}</div>

Session.set('in', newValue)in 的每一次修改都会改变您的 HTML。

【讨论】:

  • 看看这是要实现的:ibb.co/ifYosF 当我更改最初为“sssss”但我将其更改为“sssssaaaa”的成分 1 时。此更改反映在方法框下方的标记选择列表中,但未反映在方法 div 中。当你点击标签时,这些被添加到方法框
  • 我必须在点击标签时动态添加这个
    {{inHelper}}
    。然后将其插入到文本框中,该文本框会在 in 数组更改时更改
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 2018-01-02
  • 2021-05-06
  • 2017-06-28
相关资源
最近更新 更多