我試圖僅將轉換器和/或模板傳遞給特定的模板。根據the API,您只能通過幫手,但不能轉換或模板。將特定的轉換器/模板傳遞給jsViews/jsRender模板
有沒有辦法做到這一點,或有人知道它是否計劃在未來支持這一點?
注意在全球範圍內通過$.views.templates({...})
或$.views.converters({...})
傳遞他們是不是一個真正的選擇,因爲我會有辦法很多,甚至名稱衝突的模板和轉換器。
我試圖僅將轉換器和/或模板傳遞給特定的模板。根據the API,您只能通過幫手,但不能轉換或模板。將特定的轉換器/模板傳遞給jsViews/jsRender模板
有沒有辦法做到這一點,或有人知道它是否計劃在未來支持這一點?
注意在全球範圍內通過$.views.templates({...})
或$.views.converters({...})
傳遞他們是不是一個真正的選擇,因爲我會有辦法很多,甚至名稱衝突的模板和轉換器。
您可以使用您的模板聲明轉換器 - 並且它們對模板是私有的。見Registering templates: $.templates()。查找「高級方案:將私有資源與模板關聯」。
此外,the API for registering converters:$.views.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...
);
下面是一些相關鏈接:
令人驚歎!我在看完全錯誤的地方,我認爲它與'link(selector,helpers)'或'render(helpers)'樣式中的Helpers類似。 也許你可以在文檔中更明顯一點? 無論如何非常感謝! –
@mrs_sheep:本地轉換器現在覆蓋相同名稱的全局轉換器。 – BorisMoore