当前位置: 首页 > 知识库问答 >
问题:

利用瞬间。js与lang文件和require。js

董弘新
2023-03-14

我现在正试图利用这一时刻。带有require的js库。js和我仍然难以理解这样一个项目的正确设置。以下是我主要的工作。js文件:

requirejs.config({
    baseUrl: 'app',

        paths: {
            // ... more parameters (all Backbone related)
            'moment': 'lib/moment',
            'moment_de': 'lib/lang/de',
        },

    shim: {
        'moment' : {
            deps: [],
        },

        'moment_de': {
            deps: ['moment'],
        },

        // ... more parameters (all Backbone related)
    }
});

我使用一个单独的模块进行配置。该模块如下所示:

define(['moment', 'moment_de'], function(moment, de) {

    moment.lang('de');

    var configuration = {}
    // ...    
    return configuration;
});

如您所见,我试图更改此文件中矩对象的全局语言,但遇到以下错误消息:

Uncaught Error: Module name "../moment" has not been loaded yet for context: _. Use require([])

后来:

Uncaught TypeError: Cannot call method 'preparse' of undefined 

第一条错误消息是正在加载的语言模块,尽管它应该在片刻模块之后加载(如果我做得对的话)。第二个是从尝试切换到尚未加载的语言模块的矩模块。

有人能在这个问题上提供一些线索吗?提前感谢。

编辑:我使用缩小的语言版本(例如这个)修复了这个问题。显然,缩小版使用的是AMD格式,这使得更容易包含在require.js项目中)。

不过,我仍然不太明白为什么不能使用shim配置包含这些语言。也许有人能解释一下。

共有2个答案

斜烈
2023-03-14
require({
    paths: {
        'moment': '//cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min',
        'moment_de': '//cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/lang/de.min'
    }
}, ['moment', 'moment_de'], function(moment){
    moment.lang('de');
    alert(moment(1316116057189).fromNow());
});

您不应该像现在这样需要填充模块。js支持AMD。http://jsfiddle.net/moderndegree/xYXUC/

夏侯弘量
2023-03-14

本例旨在演示如何使用力矩。使用导航器进行js翻译。language属性,通常是用户的首选语言。

定义时刻。js和语言文件分别位于您的requirejs配置中,如下所示:

require.config({
  config: {
    'moment': {
      noGlobal: true
    }
  },
  paths: {
    ...
    'moment': '../vendor/moment/moment',
    'moment_de': '../vendor/moment/locale/de',
    'moment_pl': '../vendor/moment/locale/pl'
    ...
  },
  ...
});

创建一个小模块,如lib/moment。js并指定您的语言配置(您可以在此处找到RFC4646语言标记的列表):

define(function(require) {
  'use strict';

  var moment = require('moment'), locale;

  switch(navigator.language) {
    case 'de':
    case 'de-at':
    case 'de-de':
    case 'de-li':
    case 'de-lu':
    case 'de-ch':
      locale = 'moment_de';
    break;

    case 'pl':
      locale = 'moment_pl';
    break;

    ...
  }

  if (locale) {
    require([locale]);
  }

  return moment;
});

请注意:moment.js默认支持英文。

在chaplinjs视图类(或任何其他mvc类/普通脚本等)中,按如下方式使用:

define([
  'chaplin'
  'lib/moment'
], function(Chaplin, moment) {
  'use strict';

  var MyView = Chaplin.View.extend({

    ...

    parse: function() {
      ...
      console.log(moment().format('LLL'));
      ...
    }

    ...

  });

  return MyView;
});
 类似资料:
  • 本文向大家介绍js利用appendChild对 标签进行排序的实现方法,包括了js利用appendChild对 标签进行排序的实现方法的使用技巧和注意事项,需要的朋友参考一下 按照从大到小排序 appendChild: 假设父级a中已经有子节点b,那么a.appendChild(b)的作用是:1.先将子节点b从父级a中删除;2.再将子节点b添加到a中,放在最末尾。 以上就是小编为大家带来的js利用

  • 本文向大家介绍php使用include 和require引入文件的区别,包括了php使用include 和require引入文件的区别的使用技巧和注意事项,需要的朋友参考一下 最近有小伙伴,提问了有关于require_once的有关问题,对于程序中遇到的问题,无聊难度大小,只要bug存在就还值得我们去探索,去解决。针对这个问题,我把include和require的详细用法进行归纳。(结合查阅资料和

  • 我尝试将其用于typescript绑定: 测试. ts: 没有: 测试. ts: 但当我呼唤那一刻。format(),我得到一个错误。应该很简单,有人能提供一个命令行/导入组合吗?

  • 问题内容: 输入完成后,我会正确获得信用卡信息,我调用了一个函数来验证使用luhn模块的信用卡(npm install luhn),因为我使用的是: 未捕获的ReferenceError:未定义require 很抱歉,如果这是一个简单的问题,但由于找不到npm打包用法的逻辑短解决方案。我称这个时间功能。 再次相同的错误。 因此在js中,必须有使用npm模块的简单方法。但是我找不到。请我需要帮助。

  • 本文向大家介绍使用javaScript动态加载Js文件和Css文件,包括了使用javaScript动态加载Js文件和Css文件的使用技巧和注意事项,需要的朋友参考一下 JS动态加载CSS 在可换主题的界面中具有很重要的意义,用户可以根据自己的浏览习惯选择自己喜欢的页面显示方式,下面详细说明。 希望下面的方法对你有帮助。 (1)使用JavaScript动态加载Js文件 (2)使用JavaScript