我正在尝试仅将转换器和/或模板传递给特定模板。根据API,您只能传入helpers,而不能传入转换器或模板。
有什么办法可以做到这一点,或者有人知道将来是否计划支持这一点?
注意通过$.views.templates({...})
or全局传递它们$.views.converters({...})
并不是一个真正的选择,因为我将有办法使用许多甚至可能是名称冲突的模板和转换器。
你可以用你的模板声明转换器——它们对模板是私有的。请参阅注册模板: $.templates()。查找“高级方案:将私有资源与模板关联”。
此外,用于注册转换器的 API:$.views.converters({...})
还允许您在全局范围内或仅为特定模板在本地注册转换器(或一组转换器)。请参阅“将转换器添加为父模板的私有资源”部分。要使它们成为模板的本地或私有,只需在您的 converters() 调用中将模板作为最后一个参数传递。
所以这里是一个模板,它有自己的特殊转换器和模板一起声明:
$.templates({
myTemplate: {
markup: "Use my converter {{myconv:name}}",
converters: {
myconv: function(val) { return myCalculatedValue; }
}
}
});
现在{{myconv:...}}
是特定于其他地方的myTemplate
,不会在其他地方提供。
现在假设我想动态替换“myconv”,仍然在myTemplate
. 我可以随时使用converters()
API 添加/更改它:
$.views.converters(
"myconv",
function(val) { return myNewUpdatedCalculatedValue; },
$.templates.myTemplate // Only override it for myTemplate, not globally...
);
以下是一些相关链接: