人。我正在研究我的第一个严肃的Meteor项目,我遇到了一些问题。
我这里有一个小页面,其中包含一个类别表,我使用可编辑文本来允许几个字段的就地编辑功能。编辑似乎有效,但为了处理一些验证,我已经编写/附加了一个回调来处理我文档的beforeUpdate
字段上的limit
回调。
回调似乎......好......回调,但它对我的数据没有影响,我相信它应该有。基本上,如果用户键入43
之类的值,我希望此回调强制值为43.00
(必须小数点后两位)。
此代码段包含回调本身:
EditableText.registerCallbacks({
// Callback for editing category limit/budget.
budgetCurrency: function(doc) {
// Variables based on editing.
var oldVal = this.oldValue;
var newVal = this.newValue;
// Verification:
if (isNaN(newVal)) {
// Reject value if not a number, don't make change.
oldVal;
} else {
newVal = Number(newVal);
console.log(newVal.toFixed(2));
return _.extend(doc, {limit: newVal.toFixed(2)});
}
}
});
我不确定我是否做错了。通过console.log()
返回的值正如我所期望的那样,但是相同的值(在代码中)不会最终存储在更新的文档中。
非常感谢任何帮助。就我所知道的所有事情而言,我可能只是忽略了beforeUpdate
如何工作(回调)。
答案 0 :(得分:0)
正在发生的事情正如预期的那样。 Javascript Number无法直接存储到mongo中。它必须转换为int或float / double。在你的情况下,它被转换为一个没有小数点的int。
以下是您的选择: