ember.js和require.js

joe*_*der 3 requirejs ember.js

我一直在尝试重新编写一个尚未完成的我的ember应用程序来使用require.js

这主要是为了感兴趣的价值,为了方便起见,当我想为我的车把模板使用require-text时,我开始研究它.因此,我没有发现自己正在研究任何类似的AMD相关性能获胜或类似的事情.但现在我已经开始通过定义模块来设置我的模块,我发现它更容易阅读并且想坚持下去.

有一个关于堆栈溢出的问题,其中被问到的并且发布了他们的发现Ember.js和RequireJS但是没有其他示例,例如关于todo MVC的示例可以在关于如何最佳地构造和引用文件的参考文献中找到更复杂的应用.

所以无论如何,我的问题是:正确使用require JS需遵循哪些规则.它实现了什么(除了访问AMD)?我很难通过一个并不真正需要它的测试项目来解决它,但我想学习正确的与ember相关的原则,以便将来可以使用它.

我从示例代码中看到,这个想法可能是从模块中删除对全局命名空间的所有引用.那是对的吗?我没有足够的例子来发现一个模式.

目前,我的结构顶层的文件可能有这样的东西

<script>
define(['jquery',
    'app/controllers/mailshotlist',
    'app/controllers/sites',
    'ember'],
function($, MailShotList, Sites) {
  var App = Em.Application.create({
  Views: Em.Namespace.create(),
  Models: Em.Namespace.create(),
  Controllers: Em.Namespace.create(),
  init: function() {
    this._super();
    this.Controllers.set('Sites',Sites.create());
    this.Controllers.set('MailShotList',MailShotList.create({
      sitesControllerBinding: 'App.Controllers.Sites'
    }));   
  }
});
return window.App = App;
});
</script>
Run Code Online (Sandbox Code Playgroud)

因此,尝试在应用程序初始化时将显式app.x引用拼接在一起.因为我猜你的模块是否都在代码中明确地引用了彼此,所以它没有正确模块化.我现在还不在我想重用模块的阶段,但我认为这是目标之一

我希望这不要成为关于AMD是否值得的辩论,我的问题是具体说明需要遵循哪些规则才能最大限度地利用带有require js的ember.虽然如果没有使用带有需求的余烬有很好的具体原因,那么这将是有趣的.

我想我已经漫无目的地冒着风险将这个锁定为"非生产性"但是如果你能理解我的问题以及我想要了解的内容(或者如果我完全咆哮错误的树)那么请发帖回答

aba*_*ter 5

尚未提出我自己的观点,但这是Ember.js的开发人员Tom Dale在此事上所说的话.

http://tomdale.net/2012/01/amd-is-not-the-answer/