我目前正在使用Ember App Kit和Coffeescript学习Ember。
有一些特定的转义需要在coffeescript中使用才能让ES6解析器正常工作。
基本上要定义一个对象,我必须将它包装在一个变量中。
NewObject = Ember.Object.extend({
//....code...
});
`export default NewObject`
但是,如何定义像索引控制器(如嵌套目录中)?
通常我认为你只需要命名文件index.js
....但是在coffeescript中如果我需要将它包装在变量中,那么该变量是否也应该被称为索引?
我还不熟悉余烬和咖啡。
答案 0 :(得分:1)
假设您没有谈论路线/控制器,是的,您可以这样命名。
而不是使用AMD(Require.js)或CommonJS(Browserify)模块, 使用Ember CLI构建的应用程序通过ES6模块使用ES6模块 transpiler。这意味着您可以使用语法来构建应用程序 未来的JavaScript版本,但输出可以使用的AMD模块 现有的JavaScript库。
如果您之前已经构建了Ember.js应用程序,那么您可能习惯于填充 所有内容都按照命名约定进入全局命名空间 该应用程序可以自动解决其依赖关系:App.FooRoute会 知道默认情况下渲染App.FooView。使用自定义解析器, Ember CLI应用程序具有相似的功能,但使用的是ES6模块 而不是全局命名空间。
例如,app / routes / index.js中的此路由定义:
var IndexRoute = Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue'];
}
});
export default IndexRoute;
会导致一个名为routes / index的模块。使用 解析器,当Ember查找索引路径时,它会找到这个 模块并使用它导出的对象。
您也可以直接导出,即无需申报 变量:
export default Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue'];
}
});