gpt4 book ai didi

javascript - 如何从 autoform hook 访问模板实例数据

转载 作者:行者123 更新时间:2023-11-29 19:23:58 25 4
gpt4 key购买 nike

我声明了一个与实例相关的字典。

Template.newMessage.onCreated(function () {
var self = this;
self.dict = new ReactiveDict('namedDic');
});

并通过助手和事件中的 Template.instance().dict.get() 访问它。

但是,autoform 在某处嵌套了另一个模板,因此我访问此字典的代码不再有效:

AutoForm.hooks({
serverCall: {
before: {
method: function (insert, update, current) {
insert.foo = Template.instance().dict.get('foo'); <-- fails
Meteor.call('serverCall', insert);
return true;
}
}
}
});

doco 似乎没有提到任何访问父模板的方法,我不想开始猜测它有多少层父模板。

如果有任何不同,我的标记如下所示:
+quickForm id='newMessage' schema='Schema.CustomMessage' type='method' meteormethod='serverCall'

这是一个有点 A->B 的问题,我想做的只是让自动表单生成并验证一些字段,然后我可以在发送之前插入一些隐藏值作为助手/事件/ Hook 的一部分关闭到服务器。

最佳答案

我确定这不是最佳方法,但我通过在同一文件范围内设置外部变量来实现它。示例:

var myNewMessageTemplate = null;

Template.newMessage.onCreated(function () {
var self = this;
self.dict = new ReactiveDict('namedDic');
myNewMessageTemplate = self;
});

AutoForm.hooks({
serverCall: {
before: {
method: function (insert, update, current) {
insert.foo = myNewMessageTemplate.dict.get('foo'); <-- fails
Meteor.call('serverCall', insert);
return true;
}
}
}
});

你需要确保的是,hooks 和 onCreate 在同一个文件中,在同一个范围内。

关于javascript - 如何从 autoform hook 访问模板实例数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31670214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com