【问题标题】:RequireJS issues while loading and Hamljs加载和 Hamljs 时出现 RequireJS 问题
【发布时间】:2013-10-20 18:25:39
【问题描述】:

我正在使用 requirejs + jquery + sammy.js + hamljs。 模板引擎 haml 不起作用:它运行 sammy.haml,但 Haml 是为 main.js 定义的,但不是为 sammy.haml 定义的,因此无法在其中运行。页面完全加载后,控制台存在 Haml。为什么 Sammy 与 HAML 相处得不好,而它应该是?

requirejs.config({
     baseUrl: '../../components/',
     paths: {
         dropkick: 'jquery-dropkick2/jquery.dropkick-1.0.0',
         Ladda: 'Ladda/dist/ladda.min',
         'jquery-autosize': 'jquery-autosize/jquery.autosize',
         mixitup: 'mixitup/jquery.mixitup.min',
         jquery: 'jquery/jquery',
         sammy: 'sammy/lib/sammy',
         'sammy.haml': 'sammy/lib/plugins/sammy.haml',
         haml: 'haml/lib/haml',
         browser: 'jquery.browser/jquery.browser.min'
     },
     shim: {
         dropkick: {
             deps: ['jquery']
         },
         browser: {
             deps: ['jquery']
         },
         'sammy.haml': {
             deps: ['haml']
         }
     }

 });
 requirejs(['jquery', 'haml'], function($, Haml) { // They are to be loaded first
     requirejs(['sammy', 'sammy.haml', 'browser', 'markdown'], function(sammy, shaml, markdow) { // Then the others
            console.log(Haml); // WORK

            var app = sammy('#main', function() {
            var self = this;
            self.use(sammy.Haml);
            self.get('/upload', function(context) {
            context.app.swap('');
            var s = context.render('app/templates/upload.haml', {});
            s.appendTo(context.$element())




            });
        });


         });
         app.run();

     });
 });     

【问题讨论】:

    标签: javascript requirejs sammy.js


    【解决方案1】:

    终于找到解决办法了!我在主文件中定义了window.Haml = haml,并修改sammy.haml.js得到window.Haml函数而不是Haml函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多