2013-03-14 75 views

回答

3

viewExtension不是一個數組,所以在一開始,你不能設置多個viewExtensions。當然,這只是javascript,你可以進入源代碼,並從核心Durandal應用程序文件夾(鏈接在這裏:https://github.com/BlueSpire/Durandal/blob/master/App/durandal/viewEngine.js)更改viewEngine.js。這就是說,如果客戶端拉下一個* .cshtml文件,剃鬚刀語法將不會以您認爲它的方式呈現。如果服務器提供了* .cshtml視圖,那麼它將在被吐出到客戶端之前被渲染。你最好的選擇是,如果你正在尋找使用Durandal的動態視圖渲染,那麼它將覆蓋viewEngine中的一個或兩個函數,如下所示:viewEngine.convertViewIdToRequirePath(viewId):string並用於進一步控制viewEngine.createView(viewId):promise。

欲瞭解更多信息,請點擊此鏈接:Routing and Leveraging Dynamic Content in DurandalJS

1

在這個主旨看看:https://gist.github.com/irium/5191764

這是我對類似的問題,自己的解決方案。這些是Durandal的viewEngineviewLocator的定製。將該模塊導入shell模塊並運行customizeViewEngine()customizeViewLocator()函數。之後,與.html擴展名的意見將像以前一樣進行處理,但將從遠程服務器請求.cshtml視圖。但請記住:由於Durandal的緩存視圖只能進行一次。所有相同視圖的後續請求將在客戶端使用緩存版本。這可以通過從RequireJS手動取消註冊視圖的模塊來改變,但這超出了我的需求範圍

這是CoffeScript代碼編譯爲JavaScript,但我希望你能明白,我的代碼會幫助你。

相關問題