gpt4 book ai didi

javascript - Ember.js 和 RequireJS

转载 作者:IT王子 更新时间:2023-10-29 03:14:49 26 4
gpt4 key购买 nike

有没有人在 RequireJS 和 Ember.js 方面取得了很大的成功?鉴于 Ember 喜欢将其结构分配给全局对象,我发现它确实可以与 Requirejs 对接。 LAB.js 之类的东西是否更适合 Ember?

最佳答案

编辑 (2012-01-30):我在 repo 中推送了一个更完整的示例在 bitbucket 上。

我已成功使用 RequireJS 加载 Ember.js 以及日期时间插件 ( github )。 Ember namespace 本身保持全局,但我的所有应用程序数据(包括我的 Ember.Application 实例)都通过 RequireJS 保存在模块中。我还使用“文本!”加载 Handlebars 模板插件。

我还没有遇到任何问题,但这不是一个完整的应用程序,更多的是概念验证。这就是我如何让它发挥作用的。我可以直接使用 Safari 加载我的应用程序而无需服务器。您仍然需要一个服务器来使用 Chrome 加载它,它不允许 JavaScript 从文件系统加载文件。

1) 因为 Ember.js 使用 BPM/Spade,所以我无法使用 repo 的克隆。相反,我将编译后的版本包装在一个模块中:

lib/ember.js:

define(['jquery',
'plugins/order!lib/ember-0.9.3.js',
'plugins/order!lib/ember-datetime.js'],
function() {
return Ember;
});

请注意,这本身并没有在全局范围内隐藏 Ember。但我正在做一些设置,以便将来如果我能够隐藏它,依赖于此模块的所有其他模块仍将按原样工作。

2) 模块可以像这样引用 Ember:

app/core.js:

define(['lib/ember'], function(Em) {
MyApp = Em.Application.create({
VERSION: "0.0.1"
});
return MyApp;
});

在这里,“Em”可以被命名为其他名称;它不直接引用全局变量,而是来自 lib/ember.js 中定义的模块。

3) 为了能被 Ember 访问,handlebars 必须注册:

app/templates/my-template.handlebars:

MyApp v{{MyApp.VERSION}}.

app/views/my-view.js:

define(['lib/ember',
'plugins/text!app/templates/my-template.handlebars'],
function(Em, myTemplateSource) {

Em.TEMPLATES["my-template"] = Em.Handlebars.compile(myTemplateSource);

var myView = Em.View.create({
templateName: "my-template";
});

return myView;
});

4) 我正在使用 require-jquery.js(jQuery 和 RequireJS 捆绑在一起)。

关于javascript - Ember.js 和 RequireJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8776151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com