美文网首页
fastadmin 加载JS文件,语言包小记

fastadmin 加载JS文件,语言包小记

作者: LaputCat | 来源:发表于2019-04-25 15:49 被阅读0次
    前言
    主要是了解后台模块使用requireJs怎么引用其他js
    
    理解比较有限,不足之处望指点
    

    点击进入....官方文档入口

    1.目录
    image.png
    2.主入口文件
    1-1.html文件位置(主入口)
    
    -------'admin/view/common/script'
    
    <script src="__CDN__/assets/js/require{$Think.config.app_debug?'':'.min'}.js" data-main="__CDN__/assets/js/require-backend{$Think.config.app_debug?'':'.min'}.js?v={$site.version}">
    </script>
    
    1-2.JS文件调用和初始化位置(主入口):
    
    -------'require-backend.js'
    
    主要参数:
    urlArgs:"v=" + requirejs.s.contexts._.config.config.site.version, //版本号
    根路径baseUrl:requirejs.s.contexts._.config.config.site.cdnurl + '/assets/js/', //资源基础路径
    paths:参考require-backend.js
    shim:参考require-backend.js
    map: {
            '*': {
                'css': '../libs/require-css/css.min'
            }
        }
    
    其他参数参照'require-backend.js'
    
    该js文件主要作用:
    1.初始化暴露配置
    2.暴露全局语言包
    3.默认加载依赖:'fast' ,'backend', 'backend-init', 'addons'等文件
    4.牛逼之处:
    //根据js文件名自动加载依赖和控制器
     if (Config.jsname) {
        require([Config.jsname], function (Controller) {
              Controller[Config.actionname] != undefined && Controller[Config.actionname]();
        }, function (e) {
            console.error(e);
          // 这里可捕获模块加载的错误
          });
      }
    注意点:
    在控制器章节我们有提到每个控制器都对应一个JS模块,控制器名称和JS中模块名称是一一对应的。
    如:
    以TP5--MVC模型为例
    controller层:public function detail(){}
    Js文件:var controller = { detail:function(){} }
    
    

    配置项介绍入口

    JS语言包加载

    requirejs.s.contexts._.config.xx.xx.xx 这个是直接把requirejs的对象暴露出来 !!!主要是配置文件信息的读取!

    requirejs.s.contexts._.config详解

       require.backend.js中
        1.初始配置
        var Config = requirejs.s.contexts._.config.config;
    
        2.将Config渲染到全局
        window.Config = Config;
    
        3. 配置语言包的路径
        var paths = {};
        paths['lang'] = Config.moduleurl + '/ajax/lang?callback=define&controllername=' + Config.controllername;
        ///模块.php/ajax/lang?callback=define&controllername=控制器名
    
        4.当您要将某些配置传递给所有模块时使用。这些值是所有模块的通用值--暴露配置语言包
        require.config({paths: paths});
    
        5.初始化fast.js,调用lang方法,根据C层去找语言包
          lang: function () {
                var args = argument
          }
    
        lang方法里没有写参数却传入了参数,该如何拿到参数-->argument
    
        6.在fast.js将语言方法暴露到全局中去
        window.__ = Fast.lang;
    
        7.require.backend.js初始化主文件加载
        $(function () {
            require(['fast'], function (Fast) {
            });
        });
    
    使用方式:
    HTML:{:__('')}
    PHP/JS:__('')
    

    JS-arguments讲解
    JS所有内置对象属性和方法汇总

        使用栗子:
        function format(string) {
          var args = arguments;
          console.log(arguments);
          var pattern = new RegExp("%([1-" + arguments.length + "])", "g");
          return String(string).replace(pattern, function(match, index) {
            return args[index];
            });   
        };
        format("And the %1 want to know whose %2 you %3", "papers", "shirt", "wear");
        返回:“And the papers want to know whose shirt you wear”
    
    image.png image.png

    相关文章

      网友评论

          本文标题:fastadmin 加载JS文件,语言包小记

          本文链接:https://www.haomeiwen.com/subject/htbygqtx.html