在require.js中使用Dust

时间:2013-06-27 09:23:28

标签: javascript requirejs dust.js

很抱歉发布另一个“你如何使用* with require.js”的问题,但我似乎无法让dust.js在我的require项目中工作。我已经google了一下,其他人肯定会因为需要而尘埃落定。我的配置相当标准,但我找不到任何人遇到与我看到的问题相同的问题。

我从这里使用的是尘埃0.3.0的版本: https://github.com/akdubya/dustjs/blob/master/dist/dust-core-0.3.0.js

这是我的配置:

requirejs.config({
//exceptions:
paths: {
    'jquery' : 'lib/require-jquery.1.9.1',
    'jquery.mockjax' : 'lib/jquery.mockjax.1.5.1',
    'dust' : 'lib/dust.0.3.0'

},
//Shims are required for jQuery plugins.
shim: {
     'jquery.mockjax': {
     deps: ['jquery'],
     exports: 'jQuery.fn.mockjax'
     },
     'dust': {
     exports: 'dust'
     }
}

});

这就是我在模块中包含灰尘的方法:

define( function( require ) {
   var _d = require('dust')
   , _template1 = require('text!template/basicmodal.html');


   function render(key,callback){

            var compiled = _d.compile("Hello {name}!", key);
            _d.loadSource(compiled);
            _d.render(key, {name: "Fred"}, callback);

   }

   return {
   render : render,

如果我在渲染函数中设置断点,我可以看到_d确实包含尘埃对象,但由于某种原因,它没有所有的方法。特别是它的'compile'方法丢失了,导致我的代码失败。

对尘埃有更深入了解的人是否知道我在这里可能会缺少什么?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

现在支持Linkedin的粉尘。如果你想编译一些灰尘模板,也许这可能会帮助你https://github.com/linkedin/dustjs/wiki/Dust-Tutorial#compiling-a-dust-template

我不是JS的专家,但除了dust + require之外,使用Backbone也很有用。 谢谢这个(我没有足够的声誉来提供更多链接):http://weatherlabs.com/2012/10/12/backbone-underscore-and-dust/

答案 2 :(得分:0)

您可以使用此npm模块对模板进行预编译并将其包装在define调用中:

https://npmjs.org/package/grunt-dust-require