标签: amd

使用 TimelineJS 和 AMD

我正在寻找一种将 TimelineJS 与 RequireJS 的 AMD 实现结合使用的方法。我可以让事情部分工作,例如

define(["storyjs", "timelinejs", ...], function(storyjs, timelinejs, ...) {
    createStoryJS({
        type:       'timeline',
        width:      '800',
        height:     '600',
        source:     { ... }, // sample JSON
        embed_id:   'timeline-embed'
    });
});
Run Code Online (Sandbox Code Playgroud)

上面生成了一个时间线,但是storyjs(在我的 RequireJS 配置中导出VMM)总是尝试执行自己的 TimelineJS 库加载,这总是会在 Firebug/开发人员工具控制台中产生错误。

我要么寻找一种以编程方式构建 TimelineJS 对象的方法(我找不到任何示例),要么告诉 StoryJS 不要使用其机制加载库(因为我已经提供了它们),并且通常集成 TimelineJS使用 AMD 解决方案。

有什么建议么?

更新:

使用的 RequireJS 配置如下。为了我个人的使用,我倾向于重命名 JS 库并附加它们的版本号。

var require = {
    waitSeconds: 5,
    paths: {
        "app": "../js/app"

        // ** Libraries
        ,"backbone": "../js/lib/backbone-1.1.0.min"
        ,"bootstrap": "../js/lib/bootstrap-3.0.2.min"
        ,"jquery": "../js/lib/jquery-1.10.2.min"
        ,"jquery-ui": "../js/lib/jquery-ui-1.10.3.min"
        ,"json2": "../js/lib/json2" …
Run Code Online (Sandbox Code Playgroud)

javascript amd requirejs timeline.js

2
推荐指数
1
解决办法
1014
查看次数

在 SuiteScript 2.0 中引用自定义 AMD 模块

Netsuite 说在创建自定义模块时包含模块 ID,如下所示:

define(module_id, [dependencies], function)
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,找不到模块:

TypeError: Cannot read property "XPELPCenterModule" from undefined (/path/to/mysuitelet.js#35)
Run Code Online (Sandbox Code Playgroud)

当我删除I​​D时,它起作用了???

Hello Human Coder
Run Code Online (Sandbox Code Playgroud)

我错过了什么。我用同样的方式称呼他们两个

function (ui, email, runtime, search, record, log, render, cache, crypto, file, pcenter) {
        var p = new pcenter.XPELPCenterModule();
Run Code Online (Sandbox Code Playgroud)

.....

p.helloWorld('Human Coder');
Run Code Online (Sandbox Code Playgroud)

以下是模块代码示例:

工作代码:

define(["require", "exports"],
function (require, exports) {

    var XPELPCenterModule = /** @class */ (function () {

        function XPELPCenterModule(name) {
            this.name = name;
        }

        XPELPCenterModule.prototype.helloWorld = function (name) {
            return 'Hello ' + name;
        };

        return XPELPCenterModule;
    }());

    exports.XPELPCenterModule …
Run Code Online (Sandbox Code Playgroud)

javascript amd netsuite suitescript

2
推荐指数
1
解决办法
666
查看次数

未捕获的类型错误:Fragment.load 不是函数

下面的代码是从 UI5 Demo Kit 复制的,但是当我运行它时,控制台显示该函数Fragment.load不是函数的错误消息。请提出任何替代方案或突出问题(如果有)。

sap.ui.define([
  "sap/ui/core/mvc/Controller",
  "sap/m/MessageToast",
  "sap/ui/model/Filter",
  "sap/ui/model/FilterOperator",
  "sap/ui/model/json/JSONModel",
  "sap/m/MessageToast",
  "sap/ui/core/Fragment"
], function(Controller, MessageToast, Filter, FilterOperator, JSONModel, Fragment) {
  "use strict";

  return Controller.extend("Workspace.controller.HelloPanel", {
    onInit: function() {
      var plant = {
        pid: "",
        ptype: "",
        pdesc: "",
        psite: "",
        pstatus: "",
        passigned: "",
        pattach: ""
      };
      var oModel1 = new JSONModel(plant);
      this.getView().setModel(oModel1, "SUP");
    },

    onOpenDialog: function() {
      var oView = this.getView();
      if (!this.byId("helloDialog")) {
        Fragment.load({
          id: oView.getId(),
          name: "Workspace.view.HelloDialog",
          controller: this
        }).then(function(oDialog) {
          // connect dialog …
Run Code Online (Sandbox Code Playgroud)

amd sapui5

2
推荐指数
1
解决办法
3429
查看次数

通过AMD加载Breeze

我尝试将Breeze与:TypeScript,AMD模块,requirejs,knockout一起使用.

看看Breeze代码,我可以看到它需要通过名称"ko"进行淘汰.但是,还有其他组件需要通过名称"knockout"进行淘汰.

因此,如果我使用路径"knockout"创建requirejs的配置,加载器将抱怨"ko"尚未加载.如果我手动更改Breeze代码,将"ko"替换为"knockout",一切正常.

可以做什么,所以不需要更改Breeze代码?

javascript amd requirejs knockout.js breeze

1
推荐指数
1
解决办法
132
查看次数

打字稿AMD外部模块加载,角度未定义

我知道关于这个话题已经有一些类似的问题,但不知怎的,它们都没有帮助.我想在使用requirejs和Typescript的项目中使用angular.js.

我有一个模块,我使用angular来创建一个服务模块:

/// <reference path="../../../typings/angularjs/angular.d.ts" />
...
var services = angular.module('services', []);
...
export = services;
Run Code Online (Sandbox Code Playgroud)

这段代码编译时没有错误,但是在创建的js文件中,还没有angular.js依赖项:

define(["require", "exports"], function(require, exports) {
...
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,浏览器会抱怨:未捕获的ReferenceError:未定义angular

我的猜测是,除了引用它之外我还应该导入角度,但是我试过的路径都没有.

这是我的require.js配置,以防需要:

require.config({

    paths: {
        angular: '../lib/angular/angular',
        ...
    },
    shim: {
        angular : {exports : 'angular'},
        ...
    }
)}
Run Code Online (Sandbox Code Playgroud)

你可以帮助我,这里缺少什么?谢谢.

amd requirejs typescript

1
推荐指数
1
解决办法
1959
查看次数

Require.js 甚至在 IF 语句中加载模块

我在通过 require.js 加载某些 .js 模块时发现了一些问题 问题是:我只需要加载某些页面中的某些模块,而不是整个网站。因此,我以这种方式放置代码:

if($('.module-news').length > 0 + $('.module-ticket-euromillones-multiple').length + $('.module-news-page').length > 0) {
            require('_modules/news-grid').init();
        }
Run Code Online (Sandbox Code Playgroud)

如果class="module-news"存在(新闻页面),则此代码在 HTML 中搜索。如果是这样,则使用 javascript 加载模块。

那是行不通的。IF 评估正确,但无论 .module-news 是否存在,模块news-grid总是在加载。

我发现如果我更改变量的模块路径字符串,则 requires 行为正确,但这没有意义。这如何,以下代码有效:

var name = "_modules/news-grid";

if($('.module-news').length > 0 + $('.module-ticket-euromillones-multiple').length + $('.module-news-page').length > 0) {
                require(name).init();
            }
Run Code Online (Sandbox Code Playgroud)

这是需要的已知问题吗?我错过了什么吗?(也许在 requirejs.config 设置中?

帮助表示赞赏

javascript jquery amd requirejs

1
推荐指数
1
解决办法
2088
查看次数

Require.js模块没有看到Backbone Router.js

在这个简单的Require/Backbone应用程序中

https://github.com/thisishardcoded/require-prob

为什么app.js看到路由器而不是TestView.js?

这是app.js的第一行

define(['router'],function (Router) {
Run Code Online (Sandbox Code Playgroud)

这是TestView.js的第一行

define(['backbone','router'],function(Backbone,Router){
Run Code Online (Sandbox Code Playgroud)

如果你有这种倾向,请查看repo以获取完整的详细信息,下载,运行并检查控制台日志

谢谢!吉姆

更多:好的,答案是 - 因为它的加载顺序,即使它被改变了,我有一个循环依赖不是吗?TestView需要路由器,路由器需要TestView.

在哪种情况下解决方案可能是

var r=require('router);
r.navigate or whatever
Run Code Online (Sandbox Code Playgroud)

但是,路由器到处都无法直接访问,这似乎是一种耻辱,无论如何,上述方法是不是很好的做法?

amd requirejs backbone.js

0
推荐指数
1
解决办法
3189
查看次数

requireJS将配置信息传递给所有带"*"通配符的模块

我需要使用requireJS将配置值传递到我的所有AMD模块中.

通过使用以下示例,我可以愉快地将配置值传递给特定模块; 如requireJS API配置模块文档中所述

requirejs.config({
    config: {
        'bar': {
            raw: true
        },
        'baz': {
            raw: true
        },
        ...
    }
});
Run Code Online (Sandbox Code Playgroud)

以上工作正常,但我有50个模块,我想传递相同的配置值,这些可能会增加或改变.我可以定义50个模块名称,如上所述,并传递值,但我真的不想按名称定义每个模块并维护该列表,而是我想做这样的事情.

requirejs.config({
    config: {
        '*': {
            raw: true
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以上但是没有用.

requireJS配置映射似乎支持"*"通配符,但我没有看到任何类似的"配置".我已经搜索过了,但我想我的搜索日期很糟糕.

所以,问题是:"config"是否有"*"通配符支持,我只是遇到了问题?或者还有其他方法可以实现这一目标吗?

javascript configuration amd requirejs

0
推荐指数
1
解决办法
1425
查看次数

如何使用AMD模块在plain js中创建typescript类的对象实例

可以说我有以下文件tests.ts:

module tests {

    export class Greeter
    {
        sayHello() {
            console.log("hello world");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并将其编译为和AMD模块.我究竟如何在常规JavaScript(而不是typescript!)文件中创建Greeter的对象实例?

我想的是:

require(['tests', function(tests) {
    var greeter = new tests.Greeter();
    greeter.sayHello();
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用 - 调试器显示我测试__proto__但是我找不到其中的成员'Greeter'.

javascript amd requirejs typescript

0
推荐指数
1
解决办法
4139
查看次数

同步加载和异步加载是什么意思?

从这个网站阅读,我了解到使用 commonjs 意味着当浏览器完成下载文件时,它必须将它们一一加载,因为它们相互依赖。但是使用AMD,它可以同时加载多个文件,这样即使文件a依赖于文件b,文件a的一部分也可以在文件b完成之前执行?

CommonJS 模块:该标准的主要实现是在 Node.js 中(Node.js 模块有一些超出 CommonJS 的功能)。特点:语法紧凑,专为同步加载和服务器而设计

异步模块定义 (AMD):该标准最流行的实现是 RequireJS。特点:语法稍微复杂一些,使AMD能够在没有eval()(或编译步骤)的情况下工作专为异步加载和浏览器而设计

javascript asynchronous amd commonjs node.js

0
推荐指数
1
解决办法
5413
查看次数