【问题标题】:Template.meteorError.rendered doesn't work in errors meteor packageTemplate.meteorError.rendered 在错误流星包中不起作用
【发布时间】:2014-03-26 20:20:03
【问题描述】:

我正在尝试在my meteor project 中使用 meteor-errors 包。

它有两个带有 javascript 代码的主要文件:

errors_list.js:

Template.meteorErrors.helpers({
    errors: function() {
       return Errors.collection.find();
    }
});

Template.meteorError.rendered = function() {
  var error = this.data;
  Meteor.defer(function() {
    Errors.collection.update(error._id, {$set: {seen: true}});
  });
};

errors.js:

Errors = {
  // Local (client-only) collection
  collection: new Meteor.Collection(null),

  throw: function(message) {
    Errors.collection.insert({message: message, seen: false})
  },
  clearSeen: function() {
    Errors.collection.remove({seen: true});
  }
};

但看起来 Template.meteorError.rendered 方法不起作用。而且我无法将错误集合中元素的状态设置为 seen: true。

例如当我打电话时:

(服务器)

throw new Meteor.Error 401, "You need to login to add a new address"

(客户端)

Meteor.call "verify_address", address, name, (error, result) ->
  if error
    Errors.throw error.reason

我在标记中收到此错误消息,但我的浏览器控制台显示:

Errors.collection.find().fetch()

[Object]
_id: "MZ8TzpsKCXaeC33Jn"
message: "Address not the correct size"
seen: false
__proto__: Object

并且消息的 seen 属性仍然是“false”。

最初的问题是错误有一个“X”图标,单击该图标不会删除该错误。我们应该如何消除错误?

【问题讨论】:

    标签: javascript coffeescript meteor


    【解决方案1】:

    奇怪行为的原因是,您手动抛出 Meteor.Error,而您的模板绑定到通过调用 Errors.throw(message) 填充的集合

    试试这个:

    Errors.throw('You need to login to add a new address');
    

    【讨论】:

    • 我在服务器端使用:throw new Meteor.Error 401, "My message",但在客户端我使用:Errors.throw error.reason 所以我已经像你一样使用它了建议,但没有任何成功
    • 当您在浏览器控制台上使用 Errors.throw('some error message') 时会发生什么? Meteor.Error 与您尝试使用的 Errors 包完全分离。你在关注discovermeteor book的例子吗?
    • 如果我在浏览器控制台输入Errors.throw('some error message'),我会在“some error message”页面上看到新的错误消息,但也无法隐藏。是的,我关注了发现流星的书,但不知道我的错误在哪里。
    • 隐藏消息是通过在 Meteor.defer 函数中将它们标记为已读来完成的。你会在本书后面看到这一点。
    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 2021-05-08
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    相关资源
    最近更新 更多