meteor - 如何将数据变量从每个传递到流星中的with?
问题描述
我正在尝试将 git 变量传递给设置,如下所示如果我们现在可以看到它是 setting.gitlab 但我想让它像 setting.git 一样动态地设置,其中 git 是每个循环中提到的变量。
{{#each git in gitlabFields}}
{{#with settings.gitlab}}
<div data-value={{@index}}>{{git}}</div>
<div>hihi</div>
<div class="rc-user-info__row">
<div class="rc-input">
<label class="rc-input__label">
<div >
<div class="rc-input__title" style="display: inline-block;" >{{_ label}}{{equal default value '*'}}</div>
</div>
<!-- {{#each gitlabFields}} -->
<div id="dynamicFields">
<div class="rc-input__wrapper" >
<input type="text" name="{{git}}" value="{{value}}" class="rc-input__element js-input" disabled="{{./disabled}}"/>
</div>
</div>
<!-- {{/each}} -->
</label>
</div>
</div>
{{/with}}
{{/each}}
此处无法访问 git 变量 settings.git 它显示 undefined 。
解决方案
假设settings
是一个可访问的对象,您可以编写一个帮助器来解析值:
Template.myTemplate.helpers({
getGitSettings (settings, key) {
return settings[key]
}
})
如果您想与settings
模板解耦或避免将其传递给整个显示列表,您还可以在 Template 模块中将其定义为私有变量:
const gitSettings = { ... };
Template.myTemplate.helpers({
getGitSettings (settings, key) {
return gitSettings[key]
}
})
如果在许多模板中使用此模式,您还可以定义一个全局帮助器:
const gitSettings = { ... };
Template.registerHelper('gitSettings', function (key) {
return gitSettings[key]
})
并通过
{{#each field in gitlabFields}}
{{#with gitSettings field}}...{{/with}}
{{/each}}
推荐阅读
- reactjs - React/Redux 重复组件无法访问操作
- java - 奇怪的 Java 类型安全不适用于集合
- php - 如何从对象(集合)中获取价值?
- dataframe - Julia:如何通过索引从数据框中删除多行
- javascript - 如何确定用户何时在输入中键入“@”
- arrays - 如何在Angular 8中选择下拉列表时生成表格
- r - 如何对 R 中具有不同维度的两个数据框求和
- python - 检查特定的 Checkbutton 还会检查 Tkinter 中的另一个复选框
- javascript - Javascript:以编程方式将数字设置为对象键
- c++ - 在创建共享库的过程中发生了什么?