2013-03-14 74 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,但我希望你能明白,我的代码会帮助你。

相关问题