Meteor:在模板调用中使用动态参数
Meteor: use dynamic parameters in a template call
在我的 Meteor 应用程序中,我有 TAPi18n
包和 aldeed:autoform
。我正在尝试使用 i18n 对占位符字段进行表单验证,但我不知道该怎么做。
所以,我想知道是否可以使用 Spacebars
将动态参数(我就是这样称呼它)传递给模板的。我的意思是,如果不在 JS 文件中使用助手,则如下所示:
<template name="Publish">
<div class="col-md-8 col-lg-8 col-md-offset-2 col-lg-offset-2 well">
{{#autoForm collection="Publications" id="insertPublicationForm" type="insert"}}
<fieldset>
<legend>{{_ "publish_title"}}</legend>
<div class="col-md-12 col-lg-12">
<div class="form-group">
{{> afFieldInput name='name' placeholder={{_ "name"}} }}
</div>
<div class="form-group">
{{> afFieldInput name='description' placeholder={{_ "description"}} }}
</div>
<div class="form-group">
{{> afFieldInput name='price' placeholder={{_ "price"}} }}
</div>
</div>
<div class="form-group">
<button type="submit" id="add_publication" class="btn btn-success center-block">{{_ "publish"}}</button>
</div>
</fieldset>
{{/autoForm}}
</div>
</template>
我可以为每个翻译注册一个助手,但我不太喜欢这个主意。
我也知道我可以使用 SimpleSchema
中的标签字段,如下所示:
Meteor.startup(function() {
Publications.attachSchema(new SimpleSchema({
name: {
type: String,
label: TAPi18n.__("name"),
max: 200
},
description: {
type: String,
label: TAPi18n.__("description")
},
price: {
type: Number,
label: TAPi18n.__("price"),
min: 0
}
}));
});
然后使用 afQuickField
模板代替 afFieldInput
。
但是我不想使用标签,我想使用输入的占位符。
有什么办法吗?
好吧,我不知道为什么我以前没有看到它,但我可以在 SimpleSchema
:
Meteor.startup(function() {
Publications.attachSchema(new SimpleSchema({
name: {
type: String,
label: TAPi18n.__("name"),
max: 200,
autoform: {
afFieldInput: {
placeholder: TAPi18n.__("name")
}
}
},
description: {
type: String,
autoform: {
afFieldInput: {
placeholder: TAPi18n.__("description")
}
}
},
price: {
type: Number,
min: 0,
autoform: {
afFieldInput: {
placeholder: TAPi18n.__("price")
}
}
}
}));
});
这样我就可以在占位符中使用 i18n 而无需制作大量的助手。
对不起,如果我让别人在这上面浪费时间。
在我的 Meteor 应用程序中,我有 TAPi18n
包和 aldeed:autoform
。我正在尝试使用 i18n 对占位符字段进行表单验证,但我不知道该怎么做。
所以,我想知道是否可以使用 Spacebars
将动态参数(我就是这样称呼它)传递给模板的。我的意思是,如果不在 JS 文件中使用助手,则如下所示:
<template name="Publish">
<div class="col-md-8 col-lg-8 col-md-offset-2 col-lg-offset-2 well">
{{#autoForm collection="Publications" id="insertPublicationForm" type="insert"}}
<fieldset>
<legend>{{_ "publish_title"}}</legend>
<div class="col-md-12 col-lg-12">
<div class="form-group">
{{> afFieldInput name='name' placeholder={{_ "name"}} }}
</div>
<div class="form-group">
{{> afFieldInput name='description' placeholder={{_ "description"}} }}
</div>
<div class="form-group">
{{> afFieldInput name='price' placeholder={{_ "price"}} }}
</div>
</div>
<div class="form-group">
<button type="submit" id="add_publication" class="btn btn-success center-block">{{_ "publish"}}</button>
</div>
</fieldset>
{{/autoForm}}
</div>
</template>
我可以为每个翻译注册一个助手,但我不太喜欢这个主意。
我也知道我可以使用 SimpleSchema
中的标签字段,如下所示:
Meteor.startup(function() {
Publications.attachSchema(new SimpleSchema({
name: {
type: String,
label: TAPi18n.__("name"),
max: 200
},
description: {
type: String,
label: TAPi18n.__("description")
},
price: {
type: Number,
label: TAPi18n.__("price"),
min: 0
}
}));
});
然后使用 afQuickField
模板代替 afFieldInput
。
但是我不想使用标签,我想使用输入的占位符。
有什么办法吗?
好吧,我不知道为什么我以前没有看到它,但我可以在 SimpleSchema
:
Meteor.startup(function() {
Publications.attachSchema(new SimpleSchema({
name: {
type: String,
label: TAPi18n.__("name"),
max: 200,
autoform: {
afFieldInput: {
placeholder: TAPi18n.__("name")
}
}
},
description: {
type: String,
autoform: {
afFieldInput: {
placeholder: TAPi18n.__("description")
}
}
},
price: {
type: Number,
min: 0,
autoform: {
afFieldInput: {
placeholder: TAPi18n.__("price")
}
}
}
}));
});
这样我就可以在占位符中使用 i18n 而无需制作大量的助手。
对不起,如果我让别人在这上面浪费时间。