我正在尝试在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 方法不起作用。我无法将错误集合中的元素状态设置为 see: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
消息的被看见属性仍然是“假”。
最初的问题是错误的“X”图标在单击时不会删除错误。我们该如何删除错误?
答案 0 :(得分:0)
出现奇怪行为的原因是,您手动抛出Meteor.Error
而您的模板绑定到通过调用Errors.throw(message)
来填充的集合
试试这个:
Errors.throw('You need to login to add a new address');