Meteor 使用 namedContext 将 InvalidKeys 添加到 AutoForm 表单返回错误
Posted
技术标签:
【中文标题】Meteor 使用 namedContext 将 InvalidKeys 添加到 AutoForm 表单返回错误【英文标题】:Meteor using namedContext to addInvalidKeys to an AutoForm form returning an error 【发布时间】:2015-11-29 14:13:57 【问题描述】:我有以下 SimpleSchema,我正在尝试添加自定义验证以验证是否输入重复的客户名称,但每当我尝试保存新客户时,我都会收到错误:
调用结果传递异常 'adminCheckNewCustomerName':类型错误:无法读取属性 'namedContext' 为 null
有人可以告诉我我做错了什么/在这里遗漏了以验证客户名称是否与重复记录有关吗?谢谢
schema.js:
AdminSection.schemas.customer = new SimpleSchema(
CustomerName:
type: String,
label: "Customer Name",
unique: true,
custom: function()
if (Meteor.isClient && this.isSet)
Meteor.call("adminCheckNewCustomerName", this.value, function(error, result)
if (result)
Customer.simpleSchema().namedContext("newCustomerForm").addInvalidKeys([
name: "CustomerName",
type: "notUnique"
]);
);
);
UI.registerHelper('AdminSchemas', function()
return AdminSection.schemas;
);
form.html:
#autoForm id="newCustomerForm" schema=AdminSchemas.customer validation="submit" type="method" meteormethod="adminNewCustomer"
>afQuickField name="CustomerName"
<button type="submit" class="btn btn-primary">Save Customer</button>
/autoForm
collections.js:
this.Customer = new Mongo.Collection("customers");
【问题讨论】:
能否请您提供一个存储库? 【参考方案1】:检查collection2 code 以获取附加到集合的架构:
_.each([Mongo.Collection, LocalCollection], function (obj)
obj.prototype.simpleSchema = function ()
var self = this;
return self._c2 ? self._c2._simpleSchema : null;
;
);
这个神秘的同音词_c2
(编程中的两个难题之一......)来自from attachSchema
:
self._c2 = self._c2 || ;
//After having merged the schema with the previous one if necessary
self._c2._simpleSchema = ss;
这意味着您忘记了attachSchema
或摆弄了您收藏的财产。
解决:
Customer.attachSchema(AdminSchemas.customer);
//Also unless this collection stores only one customer its variable name should be plural
【讨论】:
以上是关于Meteor 使用 namedContext 将 InvalidKeys 添加到 AutoForm 表单返回错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 Twilio 与 Meteor 一起使用,ReferenceError: Twilio is not defined