Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从helper返回对象值(meteor)

从helper返回对象值(meteor)
EN

Stack Overflow用户
提问于 2018-09-05 10:50:47
回答 1查看 36关注 0票数 1

我有一个辅助函数,它接受一个参数并返回一个对象。

代码语言:javascript
运行
AI代码解释
复制
objectReturnHelper: function(param1) {
   var obj1 = collectionName.findOne(param1).count1;
   var obj2 = collectionName.findOne(param1).count2;;
   return {
        obj1: _.range(0, obj1),
        obj2: _.range(0, obj2)
    };
}

现在,我想要单独访问对象的值。这就是我想要做的:

代码语言:javascript
运行
AI代码解释
复制
{{#each objectReturnHelper id obj1}}
        <p>TEST</p>
{{/each}}

但它没有产生任何结果。但是如果我去掉这个参数,它就能正常工作:

代码语言:javascript
运行
AI代码解释
复制
objectReturnHelper: function() {
   var obj1 = 5;
   var obj2 = 10;
   return {
        obj1: _.range(0, obj1),
        obj2: _.range(0, obj2)
    };
}


{{#each objectReturnHelper.obj1}}
        <p>TEST</p>
{{/each}}

有什么见解吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-05 12:21:56

为了更好地反映对象的结构,您可以使用#with来正确地执行access object context。在此上下文中,您可以使用#each在给定范围内为每个项目创建一个范围

代码语言:javascript
运行
AI代码解释
复制
{{#with objectReturnHelper id}}
  {{#each this.obj1}}
    <p>Test (1)</p>
  {{/each}}
  {{#each this.obj2}}
    <p>Test (2)</p>
  {{/each}}
{{/with}}

如果你的助手产生了意想不到的结果,你可以使用非侵入性的后备:

代码语言:javascript
运行
AI代码解释
复制
objectReturnHelper: function(param1) {
   var query = collectionName.findOne(param1)
   if (!query) return null

   var obj1 = query.count1;
   var obj2 = query.count2;

   return {
        obj1: obj1 >= 0 ? _.range(0, obj1) : null,
        obj2: obj1 >= 0 ? _.range(0, obj2) : null,
    };
}

然后,您可以使用elsewith中捕获这种回退,它会在上下文为falsey时自动触发:

代码语言:javascript
运行
AI代码解释
复制
{{#with objectReturnHelper id}}
  {{#each this.obj1}}
    <p>Test (1)</p>
  {{/each}}
  {{#each this.obj2}}
    <p>Test (2)</p>
  {{/each}}
{{else}}
  <p>No data found</p>
{{/with}}

当然,您可以将其配置为不同的回退,其中elseeach块内捕获:

代码语言:javascript
运行
AI代码解释
复制
{{#with objectReturnHelper id}}
  {{#each this.obj1}}
    <p>Test (1)</p>
  {{else}}
    <p>No data found</p>
  {{/each}}
  {{#each this.obj2}}
    <p>Test (2)</p>
  {{else}}
    <p>No data found</p>
  {{/each}}
{{/with}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52183339

复制
相关文章
对象的传值与返回
对象的传值与返回 说起函数,就不免要谈谈函数的参数和返回值。一般的,我们习惯把函数看作一个处理的封装(比如黑箱),而参数和返回值一般对应着处理过程的输入和输出。这种情况下,参数和返回值都是值类型的,也就是说,函数和它的调用者的信息交流方式是用过数据的拷贝来完成,即我们习惯上称呼的“值传递”。但是自从引入了“引用”的概念后,函数的传统模型就不再那么“和谐”了。引用的传递可以允许函数和调用者共享数据对象,它们之间的信息交流不再使用信息拷贝的方式,而是使用更有效率的信息共享的方式,引用导致函数的参数并有输入和输出
Florian
2018/02/05
2.6K0
对象的传值与返回
C++按值返回对象那些事
某年某月的某一天,组里新来了一个工作多年的专家工程师。领导让其在我当前负责的模块上做一些优化工作。很快专家提出来很多C++语法上的修改意见。比如:
果冻虾仁
2021/12/08
7890
Golang 函数返回类型是接口时返回对象的指针还是值
Interface 是一组抽象方法(未具体实现的方法,仅包含方法名参数返回值的方法)的集合,如果实现了 interface 中的所有方法,即该类型就实现了该接口。
恋喵大鲤鱼
2019/06/14
8.2K0
Meteor——不一般的全栈开发平台!
Meteor和那些名声如雷贯耳的前端框架,比如Angular, React等都不一样,它是一个 采用单一开发语言的全栈开发的平台:开发者可以使用JavaScript同时 进行前端和后端的开发,然后交给Meteor运行这个包含了前后端的完整应用:
笔阁
2018/09/04
1.3K0
Meteor——不一般的全栈开发平台!
threejs中的各类helper对象介绍
为了简化编码工作,threejs中内置了许多各类helper类,通过helper类,让我们能添加一两行代码展现很酷的功能。还有一些看不见的对象(如光源,边界等),helper对象可以将它们展现出来,也方便我们理解。
程序你好
2021/07/23
3.6K0
threejs中的各类helper对象介绍
【C++】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 )
" 拷贝构造函数 " 又称为 " 赋值构造函数 " , 该类型构造函数有 4 种调用时机 ;
韩曙亮
2023/10/15
3140
【C++】拷贝构造函数调用时机 ② ( 对象值作为函数参数 | 对象值作为函数返回值 )
Java 遍历对象的属性和值,封装返回 Map
有时候需要获取对象的属性值,属性少的话就好设置了,属性一多就不好设置了。 我们可以通过反射来遍历 UpdateWeb updateWeb = new UpdateWeb(); Field[] fields = updateWeb.getClass().getDeclaredFields(); for (Field field : fields){ field.setAccessible(true); String
Alone88
2019/11/11
7.7K0
meteor 简介
“Meteor gives you a radically simpler way to build realtime mobile and web apps, entirely in JavaScript from one code base.”
IMWeb前端团队
2019/12/04
9270
meteor 简介
meteor 简介
本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 What “Meteor gives you a radically simpler way to b
IMWeb前端团队
2018/01/08
1.4K0
meteor 简介
ExecuteScalar 返回值
Execute=执行; scalar=数量; so, 从字面意思来讲,可将ExecuteScalar 和ExecuteNonQuery对比来学习。 ExecuteScalar()方法的作用是: 执行查询,并返回查询所返回的结果集中第一行的第一列。所有其他的列和行将被忽略。
全栈程序员站长
2022/09/14
2K0
java hashcode作用yield返回值_对象的hashcode是什么
总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了。但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。 也就是说,如果集合中现在已经有1000个元素,那么第1001个元素加入集合时,它就要调用1000次equals方法。这显然会大大降低效率。 于是,Java采用了哈希表的原理。哈希(Hash)实际上是个人名,由于他提出一哈希算法的概念,所以就以他的名字命名了。 哈希算法也称为散列算法,是将数据依特定算法直接指定到一个地址上。如果详细讲解哈希算法,那需要更多的文章篇幅,我在这里就不介绍了。 初学者可以这样理解,hashCode方法实际上返回的就是对象存储的物理地址(实际可能并不是)。 这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。 如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了, 就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。 所以这里存在一个冲突解决的问题。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。 所以,Java对于eqauls方法和hashCode方法是这样规定的: 1、如果两个对象相同,那么它们的hashCode值一定要相同;2、如果两个对象的hashCode相同,它们并不一定相同 上面说的对象相同指的是用eqauls方法比较。 你当然可以不按要求去做了,但你会发现,相同的对象可以出现在Set集合中。同时,增加新元素的效率会大大下降。hashcode这个方法是用来鉴定2个对象是否相等的。 那你会说,不是还有equals这个方法吗? 不错,这2个方法都是用来判断2个对象是否相等的。但是他们是有区别的。 一般来讲,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,就可以判断他们是否相等 了。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。举个例子,有个学生类,属性只有姓名和性别,那么我们可以 认为只要姓名和性别相等,那么就说这2个对象是相等的。 hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode 这个方法,而且也用到了equals方法。这里不可以重复是说equals和hashcode只要有一个不等就可以了!所以简单来讲,hashcode相 当于是一个对象的编码,就好像文件中的md5,他和equals不同就在于他返回的是int型的,比较起来不直观。我们一般在覆盖equals的同时也要 覆盖hashcode,让他们的逻辑一致。举个例子,还是刚刚的例子,如果姓名和性别相等就算2个对象相等的话,那么hashcode的方法也要返回姓名 的hashcode值加上性别的hashcode值,这样从逻辑上,他们就一致了。 要从物理上判断2个对象是否相等,用==就可以了。
全栈程序员站长
2022/10/05
7820
【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )
在 Python 函数中 , 通过 return 关键字 , 可以返回一个结果给调用者 , 这个返回结果就是 函数返回值 ;
韩曙亮
2023/10/11
8540
【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )
hashCode() 的返回值到底是不是对象内存地址?
一直以为Java Object.hashCode()的结果就是通过对象的内存地址做相关运算得到的,但是无意在网上看到有相应的意见争论,故抽时间从源码层面验证了剖析了hashCode的默认计算方法。
终码一生
2022/04/14
8890
【C++】匿名对象 ③ ( 函数返回值为对象值时 匿名对象 的 拷贝构造函数 与 析构函数 调用情况分析 )
在上一篇博客 【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 ) 中 , 分析了匿名函数的几种用法 , 以及不同的使用场景下 , 匿名对象 的 创建与销毁情况 ;
韩曙亮
2023/10/15
4060
【C++】匿名对象 ③ ( 函数返回值为对象值时 匿名对象 的 拷贝构造函数 与 析构函数 调用情况分析 )
java:函数--返回多个值
1、【使用集合类】使用map返回值;这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者通过源代码来查看。
用户7886150
2020/12/14
2.7K0
flask 返回response对象
from flask import Flask from flask import make_response
用户5760343
2019/07/07
1.7K0
SpringBoot返回值封装
public static <T> Result<T> success(T data){
用户7741497
2022/08/01
1.4K0
JavaScript中{}+[]和[]+{}返回值
一个返回0,一个返回'[object Object]',互换位置后返回的结果不一样。 空对象转成字符串是'[object Object]',空数组转成字符串是空字符串''。但是第一个返回0。
cultureSun
2023/05/18
1.2K0
JavaScript中{}+[]和[]+{}返回值
有关snprintf返回值
有关snprintf返回值更多信息,请参考:http://bbs.hadoopor.com/thread-1185-1-1.html
一见
2018/08/07
1.4K0
Jdbc executeUpdate 返回值
原文地址:http://nkadun.iteye.com/blog/1435333
全栈程序员站长
2022/11/01
1.4K0

相似问题

Meteor Helper返回后执行代码

14

Meteor helper函数未返回已更改的会话值

10

在Helper函数中获取Meteor方法返回值

13

在helper函数中返回meteor集合

10

来自Meteor Helper的返回值未在模板中显示

35
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档