我有以下结构:
{
id: 23423-dsfsdf-32423,
name: Proj1,
services: [
{
id:sdfs-24423-sdf,
name:P1_Service1,
products:[{},{},{}]
},
{
id:sdfs-24jhh-sdf,
name:P1_Service2,
products:[{},{},{}]
},
{
id:sdfs-2jnbn3-sdf,
name:P1_Service3,
products:[{},{},{}]
}
]
},
{
id: 23423-cxcvx-32423,
name: Proj2,
services: [
{
id:sdfs-xvxcv-sdf,
name:P2_Service1,
characteristics:[{},{},{}]
},
{
id:sdfs-xvwqw-sdf,
name:P2_Service2,
characteristics:[{},{},{}]
},
{
id:sdfs-erdfd-sdf,
name:P2_Service3,
characteristics:[{},{},{}]
}
]
}
我可以毫无问题地创建一个表单,这个模式是一个带有 quickForm 的插入表单。但我无法弄清楚(并试图阅读每个教程和说明,但没有任何效果)如何创建一个填充所有字段的更新表单,并且(还需要扩展和填充服务和特征数组:
当然,正如我所说,在更新中,我需要将服务和特性扩展到所有字段的正确大小。但如果我能理解如何填写表单字段,我就能理解自己如何扩展数组......
我试过了:
{{> quickForm collection="Projects" id="updateProjectForm" collection="Projects" type="method" class="update-project-form" doc=project }}
和:
import SimpleSchema from 'simpl-schema';
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
// Attaching the subscription to the template so we can reuse it
Template.ProjectSingle.onCreated(function(){
var self = this;
self.autorun(function(){
var id = FlowRouter.getParam('id');
self.subscribe('projectSingle', id);
});
});
Template.ProjectSingle.helpers({
project: ()=> {
var id = FlowRouter.getParam('id');
console.log(Projects.findOne({_id: id}));
return Projects.findOne({_id: id});
}
});
我什至看不到 console.log() 打印。
列表中的此解决方案没有使流星服务器崩溃...我尝试过的所有其他方法都使服务器因许多错误而崩溃
也许我需要提到我正在使用部分,所以也许 JS 文件有问题,但我不这么认为,因为正在读取 onCreated 方法。
10 倍。
编辑:
我已经删除了更新模板的部分内容,它现在位于根模板中,带有自己的 JS,方法如下:
projectDoc: ()=> {
var id = FlowRouter.getParam('id');
console.log("Update: " + Projects.findOne({_id: id}));
return Projects.findOne({_id: id});
}
现在我可以看到这个方法正在被调用,但由于某种原因它被调用了两次。首先是正确的数据,然后是未定义的,所以我仍然没有得到显示任何内容的字段,但如果我能找到它被调用两次的原因,我将解决第一级表单(无服务等)