在子表达式中传递 'this'
Passing 'this' inside a subexpression
目前,我正在使用#each 助手来遍历数组。该数组用于传递信息,使用我的文档创建列表项
const categories = ['fruit', 'vegetables', 'dairy']
{{#each categories}}
<option value="{{this}}" {{optionSelected product.category (this) }}>{{this}}</option>
{{/each}}
我正在使用 optionSelected 自定义助手来切换选项上的选定属性
hbs.handlebars.registerHelper('optionSelected', function (test, option) {
return test === option ? 'selected' : '';
})
所写的代码不起作用。如果想将 product.category
与上面定义的类别数组的当前迭代进行比较,我该怎么做?
您确实需要说明 什么 上面的代码不起作用。
事实上,除了两点外,我觉得还不错:
- 当您在
#each
的上下文中时,没有 product
对象可以在其上查找 category
,因此您需要使用通往更高评估上下文的路径, 比如 ../product.category
.
- 无需将
this
括在括号中的 optionSelected
调用中。事实上,在我的测试中,括号似乎导致了编译器错误。
以下是完全有效的模板:
{{#each categories}}
<option value="{{this}}" {{optionSelected ../product.category this}}>{{this}}</option>
{{/each}}
这里有一个fiddle供参考
目前,我正在使用#each 助手来遍历数组。该数组用于传递信息,使用我的文档创建列表项
const categories = ['fruit', 'vegetables', 'dairy']
{{#each categories}}
<option value="{{this}}" {{optionSelected product.category (this) }}>{{this}}</option>
{{/each}}
我正在使用 optionSelected 自定义助手来切换选项上的选定属性
hbs.handlebars.registerHelper('optionSelected', function (test, option) {
return test === option ? 'selected' : '';
})
所写的代码不起作用。如果想将 product.category
与上面定义的类别数组的当前迭代进行比较,我该怎么做?
您确实需要说明 什么 上面的代码不起作用。
事实上,除了两点外,我觉得还不错:
- 当您在
#each
的上下文中时,没有product
对象可以在其上查找category
,因此您需要使用通往更高评估上下文的路径, 比如../product.category
. - 无需将
this
括在括号中的optionSelected
调用中。事实上,在我的测试中,括号似乎导致了编译器错误。
以下是完全有效的模板:
{{#each categories}}
<option value="{{this}}" {{optionSelected ../product.category this}}>{{this}}</option>
{{/each}}
这里有一个fiddle供参考