哈巴狗 – 使用Jade作为Durandal View Engine?

Durandal看起来像支持自定义视图引擎:

http://durandaljs.com/documentation/View-Engine/

但我很难理解要更改或添加使用Jade模板作为我的Durandal视图引擎(客户端,未在服务器上呈现)

是否应该在Durandal源中完全重写viewEngine.js实现? (https://github.com/BlueSpire/Durandal/blob/master/App/durandal/viewEngine.js)

或者是否有一种更简单的方法,例如将jade作为requirejs加载器添加?
(例如https://github.com/rocketlabsdev/require-jade)

任何帮助,将不胜感激.

编辑:我确实尝试将上面的requirejs插件添加到Durandal,并通过main.js配置:

requirejs.config({
  paths: {
    ...
    'jade': 'durandal/amd/jade'
  }
});

...

var viewEngine = require('durandal/viewEngine');
viewEngine.viewExtension = ''; // Using .jade here results in requests for SomeView.jade.jade
viewEngine.viewPlugin = 'jade';

但视图定位器似乎有麻烦,不知道如何配置此设置.注意,我使用视图(.html)和viewmodels(.js)的约定在同一目录中并排,这工作正常

最佳答案 通过稍微修改viewEngine,您可以使其加载并呈现.jade文件.将requirejs路径配置修补为默认viewEngine的猴子允许Durandal加载不同的视图引擎.

我一共拍了一些东西here,演示可以找到here

希望这可以帮助您朝着正确的方向前进.

点赞