我正在尝试仅将转换器和/或模板传递给特定模板。根据{{3}},您只能传入帮助,而不能传递转换器或模板。
有没有办法做到这一点,或者有人知道是否计划在将来支持这个?
注意通过$.views.templates({...})
或$.views.converters({...})
全局传递它们实际上并不是一种选择,因为我将使用许多甚至是名称冲突的模板和转换器。
答案 0 :(得分:2)
您可以使用模板声明转换器 - 它们将是模板的私有模板。见Registering templates: $.templates()。寻找"高级方案:将私有资源与模板相关联" 。
此外,the API for registering converters:$.views.converters({...})
还允许您在全局或本地注册转换器(或一组转换器),仅用于特定模板。请参阅"添加转换器作为父模板的私有资源" 。要将它们设置为模板的本地或私有,只需将模板作为converter()调用中的最后一个参数传递。
因此,这是一个模板,其中包含与模板一起声明的特殊转换器:
$.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...
);
以下是一些相关链接: