0
我正在爲一個項目構建一個相當複雜的通知系統,我想弄清楚爲數據庫中各種類型的通知存儲模板的最佳方法。在數據庫中存儲淘汰模板
我發現一些類似的帖子Using a variable to store a knockout template建議在綁定視圖模型之前將所有可能的模板加載到DOM中。這個解決方案可以工作,但似乎不能很好地擴展。 knockout是否提供了一種基於ajax調用來加載模板的方法?
我正在爲一個項目構建一個相當複雜的通知系統,我想弄清楚爲數據庫中各種類型的通知存儲模板的最佳方法。在數據庫中存儲淘汰模板
我發現一些類似的帖子Using a variable to store a knockout template建議在綁定視圖模型之前將所有可能的模板加載到DOM中。這個解決方案可以工作,但似乎不能很好地擴展。 knockout是否提供了一種基於ajax調用來加載模板的方法?
Knockout具有可擴展性,允許您添加自己的模板引擎或您的custom template sources。
我有幾個項目,我使用這個功能來創建一個模板引擎,默認情況下首先查看模板字符串的JavaScript對象。有很多方法可以做到。這是我實施我的方式:https://github.com/rniemeyer/SamplePresentation/blob/master/js/stringTemplateEngine.js。
從服務器加載您的模板後,你會再只是做:
ko.templates[templateName] = response;
在任何時候,你可以很容易地從該對象中刪除模板。
我喜歡這樣的解決方案,這是非常乾淨的,謝謝!現在我可以通過ajax加載模板,是否有可能爲ul中的每個li使用一個單獨的模板,這已經與foreach綁定了? – mcottingham 2013-02-22 20:07:00
是的,模板名稱可以通過函數動態確定。這裏是一個示例:http://plnkr.co/edit/yfQAnM?p=preview(jsFiddle目前不適合我)。 – 2013-02-22 20:17:55
太棒了!這太厲害了,謝謝你,先生! – mcottingham 2013-02-22 20:23:52