javascript - 从 meteor mongo 返回数组

标签 javascript jquery arrays mongodb meteor

<强> ajduke:bootstrap-tagsinput

我正在使用上面的包来创建标签系统。我用过<select multiple>来自True Input Value从上面的链接并将每个标签插入为 Strings tag array内.

这就是我的数据库的样子。

Posts
    tags              //Array
        [0] : sometag //String
        [1] : sometag //String
        [2] : sometag //String
                      //and so forth..

所以我的问题是... 我想将帖子中的所有标签返回为以下格式,以便当我的用户尝试编辑其帖子时我可以重复使用它来显示标签。

想要的格式

['sometag', 'sometag', 'sometag', and so forth]

编辑1

这就是我到目前为止所做的。

Post_Edit.js

Template.postEdit.rendered = function() {
    myTags = Posts.findOne({_id: this._id}).tags.fetch(); //AAA
    
    $('.tagsinput').tagsinput('add', myTags); //From above link API
}

我尝试过其他方法 //AAA行但我没有运气。我尝试过诸如 Posts.findOne.map... 之类的东西也许我的英语理解能力没有达到标准,但是meteor中的文档并没有帮助我更好地理解。

编辑2

Posts.findOne({_id: "ziZw3wLaxFyz3DYP4"}).tags 我尝试将其放入浏览器控制台并以我想要的格式获取数组。

但问题是,当我使用它时,它无法在我的应用程序中运行。

当我使用Posts.findOne({_id: this._id}).tags时在我的 postEdit.rendered 中,我收到此浏览器控制台错误。 Cannot read property 'tags' of undefined Post_Edit.js

Template.postEdit.rendered = function() {
    myTags = Posts.findOne({_id: this._id}).tags;

    
    $('.tagsinput').tagsinput('add', myTags); //From above link API
}

我不明白的是为什么它可以在浏览器控制台中工作,但不能在我的 Template.postEdit.rendered 中工作?

最佳答案

您是正确的,调用 Template.postEdit.rendered 时变量 myTags 未定义,因为调用函数时 Posts 数据库尚未完成加载。

myTags = Posts.findOne({_id: this._id}).tags.fetch(); //AAA

解决方案
有多种策略,包括:

  1. 订阅完成后更新 DOM
    http://docs.meteor.com/#/full/Blaze-TemplateInstance-subscribe

  2. 集合更改时重新运行该函数
    http://docs.meteor.com/#/full/tracker_autorun

    Template.postEdit.rendered = function() {
       Tracker.autorun(function () {  ** NEW LINE **
          myTags = Posts.findOne({_id: this._id}).tags; 
    
          $('.tagsinput').tagsinput('add', myTags); 
       } ** NEW LINE **
    }
    

关于javascript - 从 meteor mongo 返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29418588/

相关文章:

jquery - 持有 jQuery 对象的变量范围(通过选择器)不是全局的

javascript - 如何在 Javascript 中删除字符串末尾的数字和文本

javascript - 在 Electron + React 中创建由 MongoDB 支持的持久 redux 状态

javascript - 如何动态生成带 Angular 多级下拉菜单?

java - 识别字符数组中的特殊字符

c++ - 放置新+数组+对齐

c++ - 数组在随机生成数字到数组的过程中从内存中输出随机数

javascript - 从 React.JS 状态调用方法

javascript - 根据子元素应用 css 类

JavaScript 输入聚合函数不包括默认输入值