项目中requireJS的应用例子

页面:

<#-- 页脚 -->
<html><body>
	<#--弹窗模板-->
	<div id="modal" class="modal"><div></div></div>
    <#assign mainJS="/assets/js/controller/front/login/login">
    <#-- 通过RequireJS加载JS代码  -->
    <#if mainJS?has_content>
      <script data-main="/assets/js/app.js" data-start="${mainJS}" src="/assets/js/require.js"></script>
    <#else>
      <script data-main="/assets/js/app.js" src="/assets/js/require.js"></script>
    </#if>    
    
     <#--  <script type="text/javascript" src="/assets/js/require-main.js" src="${mainJS}""></script> -->
     
     
    
  </body>
</html>


app.js

/******require-global-config.js******/
require.config({
    "baseUrl" : "/assets/js",
    
    paths : {
      "jquery" : "libs/jquery/jquery-1.11.1.min",
      "bootstrap" : "libs/bootstrap/3.3.0/js/bootstrap.min",
      "json": "libs/vendor/json2",
      "css": "libs/vendor/require.css",
      "util": "libs/vendor/underscore",
      "hogan": "libs/vendor/hogan",
      "templ": "libs/vendor/require.hogan",
      "text": "libs/vendor/require.text",
      "ie10-viewport-hack" : "libs/hacks/ie10-viewport-bug-workaround",
      "bootstrap-modal-hack" : "utils/bootstrap-modal-hack",
      "jquery.validate" : "libs/jquery-validation/jquery.validate.min",
      "school-validate" : "utils/school-validate"
    },
    
    shim : {
        "jquery": { exports: "jQuery" },
        "util": { exports: "_" },
        "json": { exports: "JSON" },
        "bootstrap": { deps: ["jquery"], exports: "$.fn.transition" },
        "backbone": { deps: ["jquery", "json", "util"], exports: "Backbone" },
      "ie10-viewport-hack" : { "deps" : ["jquery"] },
      "bootstrap-modal-hack" : { "deps" : ["jquery","bootstrap"] },
      "jquery.validate" : { "deps" : ["jquery"] },
      "school-validate" : { "deps" : ["jquery","jquery.validate"] }
    }
  });
//libs
require(["jquery", "bootstrap","css","json","hogan","templ", "text", "ie10-viewport-hack","bootstrap-modal-hack"],function () {
    
        var $ = require("jquery"),
            // the start module is defined on the same script tag of data-main.
            // example: <script data-main="main.js" data-start="pagemodule/main" src="vendor/require.js"/>
            startModuleName = $("script[data-main][data-start]").attr("data-start");
        startModuleName=startModuleName + ".js";
        console.log(startModuleName);

        if (startModuleName) {
            require([startModuleName], function (startModule) {
                $(function(){
                    var fn = $.isFunction(startModule) ? startModule : startModule;
                    if (fn) { fn(); }
                });
            });
        }
    });

login.js

require(["jquery", "bootstrap", "ie10-viewport-hack", "bootstrap-modal-hack", "jquery.validate", "school-validate"], function($){
  
  // DOM Ready
  $(function(){
      
      //验证码,换一张
      $(".change-img").click(function(){
          var src = $("#imgObj").attr("src"); 
          var url = src + '?' + new Date().getTime();
          $("#imgObj").attr("src",url);
      });
                   
      //注册验证
    jQuery.validator.setDefaults({
      errorElement : 'p',
      errorClass : 'help-block',
      
      highlight : function(element) {
        $(element).closest('.form-group').addClass('has-error');
      },
      
      success : function(label) {
        label.closest('.form-group').removeClass('has-error');
        label.remove();
      },
      
      errorPlacement : function(error, element) {
        element.parent('div').append(error);
      }
    });
    
    $(".login-form").validate({
      rules : {
            username : {
                required : true,
                maxlength : 60
            },
            password : {
                required : true,
                minlength : 6,
                maxlength : 20
            },
            validateCode :{
                required : true,
            }
      },
      messages : {
          username : {
              required : '请输入邮箱',
              maxlength : '用户名最大长度不能超过60个字符。'
          },
          password : {
              required : '请输入密码',
              minlength : '密码长度不能小于6个字符。',
              maxlength : '密码长度不能超过20个字符。'
          },
          validateCode :{
              required : '请输入验证码'
          }
          
      },
      
          submitHandler : function(form){
             form.submit();
          }
/*          submitHandler: function(validator, form, submitButton) {
              $.post(form.attr('action'), form.serialize(), function(jsonResult) {
                  if("success" == jsonResult.status) {
                      
                  } else {
                      $('#onSuccessDiv').hide();
                      $('span#errorMsg').html(jsonResult.errorMsg);
                      $('#onFailureDiv').show();
                  }
              }, 'json');
          }*/
    });
  }); // DOM Ready
  
});


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值