使parsley.js与require.js一起使用

时间:2014-06-21 10:21:10

标签: javascript validation requirejs parsley.js

我试过了:

require.config({
    paths: {
        jquery: '../lib/zepto/zepto-1.1.3', 
        "jquery.parsley": '../lib/parsley/parsley-2.0.2'
    },
    shim: {
        'jquery.parsley': ['jquery']   // I also tried without this
    }
});

define(['jquery', 'jquery.parsley'], function( $ ) {
    $("#signup-form").parsley('validate'); // "signup-form" is the form id
});

但是我收到了这个错误:

TypeError: $(...).parsley is not a function

我做错了什么?你能帮我把它搞定吗? 感谢

2 个答案:

答案 0 :(得分:0)

Parsley 2.0.2不需要shim,因为它会调用define。见the source

if (typeof define === 'function' && define.amd) {
  // AMD. Register as an anonymous module depending on jQuery.
  define(['jquery'], factory);
} else {

它会调用define,因此不会shim。你为它定义了一个shim。使用不需要shim的{​​{1}}模块加载会导致未定义的行为。

答案 1 :(得分:-1)

我遇到了同样的问题,但我发现Parsley依赖于Jquery所以在你的垫片配置中你应该写:

paths: {
       "jquery" : "../libs/jquery/jquery-1.11.0.min",
       "parsley" : "../libs/parsley/parsley.min",
}

shim: {

       "parsley": {
                    "deps" : ["jquery"],
                    "exports" : "parsley"
      }
}