【问题标题】:Unable to use variable in constructing $pop query in Meteor在 Meteor 中构造 $pop 查询时无法使用变量
【发布时间】:2013-07-13 04:01:52
【问题描述】:

我正在尝试在 Meteor 中的嵌入式数组上使用 $pop,并且我很确定我对变量范围和操作顺序的有限理解导致了我的问题。

为了提供一个简化的例子,这是可行的:

do_thing = function(foo) {
  Coll.update(foo, {$pop: { "bar.baz": 1 }} );
};

do_thing( "123" );

但这不是:

do_thing = function(foo, bar) {
  var tmp = bar + ".baz"
  Coll.update(foo, {$pop: { tmp: 1 }} );
};

do_thing( "123", "bar" );

核心问题是,当我对要从中弹出项目的数组进行硬编码时更新成功,但是当动态构造该数组时更新失败。我认为原因是 不是 因为它是一个变量,因为 'foo' 有效,而是问题在于 'tmp' 可能没有及时实例化更新()打电话。

谁能建议我如何实现我正在寻找的结果:从一个字段中弹出一个项目,直到我在函数中才知道它的名称?

另外,如果我一开始就采取了完全错误的方法,我愿意接受有关如何构建此函数的更广泛建议。

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    文字字符串“tmp”用于键名,而不是您为变量“tmp”传递的值。

    试试这个:

    updateboj = {}
    updateobj[tmp] = 1
    Coll.update(foo, {$pop: updateobj} );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-17
      • 2013-01-22
      • 1970-01-01
      • 2013-02-08
      • 2011-07-16
      • 1970-01-01
      • 2021-11-24
      相关资源
      最近更新 更多