【问题标题】:Meteor: How do I adjust iron router return data based on search query?Meteor:如何根据搜索查询调整 Iron Router 返回数据?
【发布时间】:2014-09-19 16:55:06
【问题描述】:

我有一个用户可以做笔记的应用。

在 html 页面中,我像这样遍历每个注释:

<div id="notes-container" class="notes">
  {{each notes}}
    {{> note}} 
  {{/each}}
</div>

在我的路由器文件中,我返回如下数据:

@route: 'notes'.
  path: '/notes/:_id',
  data: ->
      notes = Notes.find
          threadId: @params._id
          trash:
            $exists: false
        ,
          sort: 
            date: -1

到目前为止,一切都是典型的流星。但是我现在对如何调整在 html 页面中迭代的数据感到困惑。

每个笔记都有一个数组字段,用于标签之类的标签: ['apple' ,'red', 'green']

如果用户想要返回所有带有“红色”标签的笔记怎么办。所以网站上有一个输入框,用户输入一个标签,然后回车。

如何调整发送到页面的数据,以便查询 mongodb 以返回所有带有红色标签的笔记?我知道如何编写查询我不确定如何在流星中设置它。

我尝试这样做的一种方法是使用查询参数调用相同的路由,例如:'/notes/326363235474?tags=apple'

在 Iron 路由器中,我可以查找查询参数并返回正确的文档集,但是当我再次调用原始路由以清除搜索时,它不会再次加载所有原始文档。

关于如何设置的任何建议?谢谢

【问题讨论】:

    标签: meteor


    【解决方案1】:

    如果我将此函数定义为某个路由,则数据函数只需要返回您希望在模板上下文中可用的数据:

     data: ->
            return Drawing.findOne
                _id: window._drawing_id
    

    在处理该模板时,我的“this”对象中会包含该数据。

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 2015-09-21
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      相关资源
      最近更新 更多