【问题标题】:Meteor insert trouble流星插入故障
【发布时间】:2015-12-11 03:32:27
【问题描述】:

我用这个模板做了一个简单的插入。

<template name="device_register">
<form class="device_register-form">
    <input class="device_register_serial" name="device_register_serial" type="text" placeholder="Serial Number" />
    <div class="button button-block button-stable register_device_button">
                    <i class=".register_device_button">Register</i> 
    </div>
</form>

并使用这个咖啡脚本:

  Template.device_register.onCreated ->
  @autorun =>
    if Meteor.isCordova
      if Session.get('connected')
        @subscribe 'userData'
    else
      @subscribe 'userData'


Template.device_register.events
  'click .register_device_button': (event, template) ->
    serial = document.getElementsByClassName('device_register_serial')[0].value
    @subscribe 'DeviceAvailable', serial,
     onReady: () =>
        alpha = DeviceAvailable.insert({serial: "azerty1234", firmware_version : 1.00})
        if not _.isEmpty(alpha)
            sAlert.info alpha

一个 id 与 sAlert 一起显示,但集合中没有添加任何内容。我不明白为什么。

【问题讨论】:

  • 我尝试使用您提供的代码,但@subscribe 导致客户端出现错误:this.subscribe is not a function。事件处理程序中this 的值是数据上下文。您是否真的通过显示的代码收到警报?另外,您希望在客户端还是服务器端检查集合?

标签: mongodb templates meteor client


【解决方案1】:

事实上,你不能在事件中使用订阅功能,你需要在服务器端调用一个方法。

     Meteor.call('functionName', arg, function(error, data){
})

在服务器端

        Meteor.methods({
        fuctionName:function(param) {
//your code
    })

【讨论】:

  • 这不是真的。你可以在事件中使用订阅,你不能使用this.subscribe,因为this指的是数据上下文。使用Meteor.subscribe
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多