0

我正在尝试仅将转换器和/或模板传递给特定模板。根据API,您只能传入helpers,而不能传入转换器或模板。

有什么办法可以做到这一点,或者有人知道将来是否计划支持这一点?

注意通过$.views.templates({...})or全局传递它们$.views.converters({...})并不是一个真正的选择,因为我将有办法使用许多甚至可能是名称冲突的模板和转换器。

4

1 回答 1

2

你可以用你的模板声明转换器——它们对模板是私有的。请参阅注册模板: $.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...
);

以下是一些相关链接:

于 2013-10-09T01:25:19.807 回答