Coffeescript和定义Ember对象

时间:2014-06-17 21:06:05

标签: ember.js coffeescript ember-app-kit

我目前正在使用Ember App Kit和Coffeescript学习Ember。

有一些特定的转义需要在coffeescript中使用才能让ES6解析器正常工作。

基本上要定义一个对象,我必须将它包装在一个变量中。

NewObject = Ember.Object.extend({
  //....code...
});

`export default NewObject`

但是,如何定义像索引控制器(如嵌套目录中)?

通常我认为你只需要命名文件index.js ....但是在coffeescript中如果我需要将它包装在变量中,那么该变量是否也应该被称为索引?

我还不熟悉余烬和咖啡。

1 个答案:

答案 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'];    
  }  
});