我在Blaze中有button
的动态模板,看起来像这样(简化):
button.html
<template name="Button">
<button {{attributes}}>
<span class="button__text">{{> UI.contentBlock}}</span>
</button>
</template>
button.js
import {Template} from 'meteor/templating';
import cx from 'classnames';
import './button.html';
Template.Button.helpers({
attributes() {
const instance = Template.instance();
let {data} = instance;
return {
disabled: data.disabled,
'class': cx('button', data.class)
};
}
});
尝试设置动态数据属性:
{{#Button class="js-add-contact" data-phase-index={{index}}}}Add Contact{{/Button}}
将index
(我们假设它只是一个简单的动态字符串)插入data-phase-index
会引发错误:内容块不期望{{
。我不确定将动态数据导入模板的另一种方法。还有一个问题是在data-
帮助程序中获取Button识别的attributes()
属性。任何人都可以解决这个问题吗?
答案 0 :(得分:1)
只需data-phase-index=index
即可。
由于您已经在Button
模板调用的双花括号中,Meteor知道它将获得解释值。例如,请注意您必须在class="js-add-contact"
中的字符串周围使用引号。
像往常一样,Meteor将尝试从帮助者或数据上下文中解释index
。